@@ -402,3 +402,53 @@ func TestFindToolsRequiredFromPlatformRelease(t *testing.T) {
402
402
require .NoError (t , err )
403
403
require .Len (t , tools , 4 )
404
404
}
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