Skip to content

Commit 6f63cf5

Browse files
committed
Added unit test for legacy-package conversion to pluggable discovery
1 parent c100e14 commit 6f63cf5

File tree

7 files changed

+9099
-4976
lines changed

7 files changed

+9099
-4976
lines changed

arduino/cores/packagemanager/package_manager_test.go

+52
Original file line numberDiff line numberDiff line change
@@ -402,3 +402,55 @@ func TestFindToolsRequiredFromPlatformRelease(t *testing.T) {
402402
require.NoError(t, err)
403403
require.Len(t, tools, 4)
404404
}
405+
406+
func TestLegacyPackageConversionToPluggableDiscovery(t *testing.T) {
407+
// Pass nil, since these paths are only used for installing
408+
pm := packagemanager.NewPackageManager(nil, nil, nil, nil)
409+
// Hardware from main packages directory
410+
pm.LoadHardwareFromDirectory(dataDir1.Join("packages"))
411+
{
412+
fqbn, err := cores.ParseFQBN("esp32:esp32:esp32")
413+
require.NoError(t, err)
414+
require.NotNil(t, fqbn)
415+
_, platformRelease, board, _, _, err := pm.ResolveFQBN(fqbn)
416+
require.NoError(t, err)
417+
418+
require.Equal(t, "esptool__pluggable_network", board.Properties.Get("upload.tool.network"))
419+
require.Equal(t, "esp32", board.Properties.Get("upload_port.0.board"))
420+
platformProps := platformRelease.Properties
421+
require.Equal(t, "builtin:serial-discovery", platformProps.Get("pluggable_discovery.required.0"))
422+
require.Equal(t, "builtin:mdns-discovery", platformProps.Get("pluggable_discovery.required.1"))
423+
require.Equal(t, "{runtime.tools.esptool.path}", platformProps.Get("tools.esptool__pluggable_network.path"))
424+
require.Contains(t, platformProps.Get("tools.esptool__pluggable_network.cmd"), "esptool")
425+
require.Equal(t, "esptool.exe", platformProps.Get("tools.esptool__pluggable_network.cmd.windows"))
426+
require.Equal(t, "python \"{runtime.platform.path}/tools/espota.py\"", platformProps.Get("tools.esptool__pluggable_network.network_cmd"))
427+
require.Equal(t, "\"{runtime.platform.path}/tools/espota.exe\"", platformProps.Get("tools.esptool__pluggable_network.network_cmd.windows"))
428+
require.Equal(t, "esp32", platformProps.Get("tools.esptool__pluggable_network.upload.protocol"))
429+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.upload.params.verbose"))
430+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.upload.params.quiet"))
431+
require.Equal(t, "Password", platformProps.Get("tools.esptool__pluggable_network.upload.field.password"))
432+
require.Equal(t, "true", platformProps.Get("tools.esptool__pluggable_network.upload.field.password.secret"))
433+
require.Equal(t, "{network_cmd} -i \"{upload.port.address}\" -p \"{upload.port.properties.port}\" \"--auth={upload.field.password}\" -f \"{build.path}/{build.project_name}.bin\"", platformProps.Get("tools.esptool__pluggable_network.upload.pattern"))
434+
}
435+
{
436+
fqbn, err := cores.ParseFQBN("esp8266:esp8266:generic")
437+
require.NoError(t, err)
438+
require.NotNil(t, fqbn)
439+
_, platformRelease, board, _, _, err := pm.ResolveFQBN(fqbn)
440+
require.NoError(t, err)
441+
require.Equal(t, "esptool__pluggable_network", board.Properties.Get("upload.tool.network"))
442+
require.Equal(t, "generic", board.Properties.Get("upload_port.0.board"))
443+
platformProps := platformRelease.Properties
444+
require.Equal(t, "builtin:serial-discovery", platformProps.Get("pluggable_discovery.required.0"))
445+
require.Equal(t, "builtin:mdns-discovery", platformProps.Get("pluggable_discovery.required.1"))
446+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.path"))
447+
require.Equal(t, "{runtime.tools.python3.path}/python3", platformProps.Get("tools.esptool__pluggable_network.cmd"))
448+
require.Equal(t, "{runtime.tools.python3.path}/python3", platformProps.Get("tools.esptool__pluggable_network.network_cmd"))
449+
require.Equal(t, "esp", platformProps.Get("tools.esptool__pluggable_network.upload.protocol"))
450+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.upload.params.verbose"))
451+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.upload.params.quiet"))
452+
require.Equal(t, "Password", platformProps.Get("tools.esptool__pluggable_network.upload.field.password"))
453+
require.Equal(t, "true", platformProps.Get("tools.esptool__pluggable_network.upload.field.password.secret"))
454+
require.Equal(t, "\"{network_cmd}\" -I \"{runtime.platform.path}/tools/espota.py\" -i \"{upload.port.address}\" -p \"{upload.port.properties.port}\" \"--auth={upload.field.password}\" -f \"{build.path}/{build.project_name}.bin\"", platformProps.Get("tools.esptool__pluggable_network.upload.pattern"))
455+
}
456+
}

0 commit comments

Comments
 (0)