@@ -312,3 +312,64 @@ func TestCompileWithoutPrecompiledLibraries(t *testing.T) {
312
312
_ , _ , err = cli .Run ("compile" , "-b" , "arduino:samd:mkrvidor4000" , sketchPath .String ())
313
313
require .NoError (t , err )
314
314
}
315
+
316
+ func TestCompileWithBuildPropertiesFlag (t * testing.T ) {
317
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
318
+ defer env .CleanUp ()
319
+
320
+ // Init the environment explicitly
321
+ _ , _ , err := cli .Run ("core" , "update-index" )
322
+ require .NoError (t , err )
323
+
324
+ // Install Arduino AVR Boards
325
+ _ ,
_ ,
err = cli .
Run (
"core" ,
"install" ,
"arduino:[email protected] " )
326
+ require .NoError (t , err )
327
+
328
+ // Copy sketch
329
+ sketchName := "sketch_with_single_string_define"
330
+ p , err := paths .Getwd ()
331
+ require .NoError (t , err )
332
+ require .NotNil (t , p )
333
+ testSketch := p .Parent ().Join ("testdata" , sketchName )
334
+ sketchPath := cli .SketchbookDir ().Join (sketchName )
335
+ err = testSketch .CopyDirTo (sketchPath )
336
+ require .NoError (t , err )
337
+
338
+ fqbn := "arduino:avr:uno"
339
+
340
+ // Compile using a build property with quotes
341
+ _ , stderr , err := cli .Run ("compile" , "-b" , fqbn , "--build-properties=\" build.extra_flags=\" -DMY_DEFINE=\" hello world\" \" " , sketchPath .String (), "--verbose" , "--clean" )
342
+ require .Error (t , err )
343
+ require .NotContains (t , string (stderr ), "Flag --build-properties has been deprecated, please use --build-property instead." )
344
+
345
+ // Try again with quotes
346
+ _ , stderr , err = cli .Run ("compile" , "-b" , fqbn , "--build-properties=\" build.extra_flags=-DMY_DEFINE=\" hello\" \" " , sketchPath .String (), "--verbose" , "--clean" )
347
+ require .Error (t , err )
348
+ require .NotContains (t , string (stderr ), "Flag --build-properties has been deprecated, please use --build-property instead." )
349
+
350
+ // Copy sketch
351
+ sketchName = "sketch_with_single_int_define"
352
+ testSketch = p .Parent ().Join ("testdata" , sketchName )
353
+ sketchPath = cli .SketchbookDir ().Join (sketchName )
354
+ err = testSketch .CopyDirTo (sketchPath )
355
+ require .NoError (t , err )
356
+
357
+ // Try without quotes
358
+ stdout , stderr , err := cli .Run ("compile" , "-b" , fqbn , "--build-properties=\" build.extra_flags=-DMY_DEFINE=1\" " , sketchPath .String (), "--verbose" , "--clean" )
359
+ require .NoError (t , err )
360
+ require .Contains (t , string (stderr ), "Flag --build-properties has been deprecated, please use --build-property instead." )
361
+ require .Contains (t , string (stdout ), "-DMY_DEFINE=1" )
362
+
363
+ // Copy sketch
364
+ sketchName = "sketch_with_multiple_int_defines"
365
+ testSketch = p .Parent ().Join ("testdata" , sketchName )
366
+ sketchPath = cli .SketchbookDir ().Join (sketchName )
367
+ err = testSketch .CopyDirTo (sketchPath )
368
+ require .NoError (t , err )
369
+
370
+ stdout , stderr , err = cli .Run ("compile" , "-b" , fqbn , "--build-properties=\" build.extra_flags=-DFIRST_PIN=1,compiler.cpp.extra_flags=-DSECOND_PIN=2\" " , sketchPath .String (), "--verbose" , "--clean" )
371
+ require .NoError (t , err )
372
+ require .Contains (t , string (stderr ), "Flag --build-properties has been deprecated, please use --build-property instead." )
373
+ require .Contains (t , string (stdout ), "-DFIRST_PIN=1" )
374
+ require .Contains (t , string (stdout ), "-DSECOND_PIN=2" )
375
+ }
0 commit comments