Skip to content

Commit 40943b1

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

File tree

7 files changed

+9097
-4976
lines changed

7 files changed

+9097
-4976
lines changed

arduino/cores/packagemanager/package_manager_test.go

+50
Original file line numberDiff line numberDiff line change
@@ -402,3 +402,53 @@ 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.Contains(t, platformProps.Get("tools.esptool__pluggable_network.network_cmd"), "{runtime.platform.path}/tools/espota")
426+
require.Equal(t, "esp32", platformProps.Get("tools.esptool__pluggable_network.upload.protocol"))
427+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.upload.params.verbose"))
428+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.upload.params.quiet"))
429+
require.Equal(t, "Password", platformProps.Get("tools.esptool__pluggable_network.upload.field.password"))
430+
require.Equal(t, "true", platformProps.Get("tools.esptool__pluggable_network.upload.field.password.secret"))
431+
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"))
432+
}
433+
{
434+
fqbn, err := cores.ParseFQBN("esp8266:esp8266:generic")
435+
require.NoError(t, err)
436+
require.NotNil(t, fqbn)
437+
_, platformRelease, board, _, _, err := pm.ResolveFQBN(fqbn)
438+
require.NoError(t, err)
439+
require.Equal(t, "esptool__pluggable_network", board.Properties.Get("upload.tool.network"))
440+
require.Equal(t, "generic", board.Properties.Get("upload_port.0.board"))
441+
platformProps := platformRelease.Properties
442+
require.Equal(t, "builtin:serial-discovery", platformProps.Get("pluggable_discovery.required.0"))
443+
require.Equal(t, "builtin:mdns-discovery", platformProps.Get("pluggable_discovery.required.1"))
444+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.path"))
445+
require.Equal(t, "{runtime.tools.python3.path}/python3", platformProps.Get("tools.esptool__pluggable_network.cmd"))
446+
require.Equal(t, "{runtime.tools.python3.path}/python3", platformProps.Get("tools.esptool__pluggable_network.network_cmd"))
447+
require.Equal(t, "esp", platformProps.Get("tools.esptool__pluggable_network.upload.protocol"))
448+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.upload.params.verbose"))
449+
require.Equal(t, "", platformProps.Get("tools.esptool__pluggable_network.upload.params.quiet"))
450+
require.Equal(t, "Password", platformProps.Get("tools.esptool__pluggable_network.upload.field.password"))
451+
require.Equal(t, "true", platformProps.Get("tools.esptool__pluggable_network.upload.field.password.secret"))
452+
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"))
453+
}
454+
}

0 commit comments

Comments
 (0)