@@ -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