@@ -254,3 +254,71 @@ program.extra_params=-P{serial.port}
254
254
255
255
require .Equal (t , expectedProps .AsMap (), props .AsMap ())
256
256
}
257
+
258
+ func TestConvertUploadToolsToPluggableDiscoveryWithMenus (t * testing.T ) {
259
+ props , err := properties .LoadFromBytes ([]byte (`
260
+ name=Nucleo-64
261
+
262
+ build.core=arduino
263
+ build.board=Nucleo_64
264
+ build.variant_h=variant_{build.board}.h
265
+ build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
266
+
267
+ # Upload menu
268
+ menu.upload_method.MassStorage=Mass Storage
269
+ menu.upload_method.MassStorage.upload.protocol=
270
+ menu.upload_method.MassStorage.upload.tool=massStorageCopy
271
+
272
+ menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
273
+ menu.upload_method.swdMethod.upload.protocol=0
274
+ menu.upload_method.swdMethod.upload.options=-g
275
+ menu.upload_method.swdMethod.upload.tool=stm32CubeProg
276
+
277
+ menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
278
+ menu.upload_method.serialMethod.upload.protocol=1
279
+ menu.upload_method.serialMethod.upload.options={serial.port.file} -s
280
+ menu.upload_method.serialMethod.upload.tool=stm32CubeProg
281
+
282
+ menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
283
+ menu.upload_method.dfuMethod.upload.protocol=2
284
+ menu.upload_method.dfuMethod.upload.options=-g
285
+ menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
286
+ ` ))
287
+ require .NoError (t , err )
288
+ convertUploadToolsToPluggableDiscovery (props )
289
+
290
+ expectedProps , err := properties .LoadFromBytes ([]byte (`
291
+ name=Nucleo-64
292
+
293
+ build.core=arduino
294
+ build.board=Nucleo_64
295
+ build.variant_h=variant_{build.board}.h
296
+ build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial}
297
+
298
+ # Upload menu
299
+ menu.upload_method.MassStorage=Mass Storage
300
+ menu.upload_method.MassStorage.upload.protocol=
301
+ menu.upload_method.MassStorage.upload.tool=massStorageCopy
302
+ menu.upload_method.MassStorage.upload.tool.default=massStorageCopy
303
+
304
+ menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
305
+ menu.upload_method.swdMethod.upload.protocol=0
306
+ menu.upload_method.swdMethod.upload.options=-g
307
+ menu.upload_method.swdMethod.upload.tool=stm32CubeProg
308
+ menu.upload_method.swdMethod.upload.tool.default=stm32CubeProg
309
+
310
+ menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
311
+ menu.upload_method.serialMethod.upload.protocol=1
312
+ menu.upload_method.serialMethod.upload.options={serial.port.file} -s
313
+ menu.upload_method.serialMethod.upload.tool=stm32CubeProg
314
+ menu.upload_method.serialMethod.upload.tool.default=stm32CubeProg
315
+
316
+ menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
317
+ menu.upload_method.dfuMethod.upload.protocol=2
318
+ menu.upload_method.dfuMethod.upload.options=-g
319
+ menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
320
+ menu.upload_method.dfuMethod.upload.tool.default=stm32CubeProg
321
+ ` ))
322
+ require .NoError (t , err )
323
+ require .Equal (t , expectedProps .AsMap (), props .AsMap ())
324
+ }
0 commit comments