@@ -312,3 +312,55 @@ 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:avr@1.8.3" )
326
+ require .NoError (t , err )
327
+
328
+ sketchName := "sketch_with_single_string_define"
329
+ sketchPath := cli .CopySketch (sketchName )
330
+ fqbn := "arduino:avr:uno"
331
+
332
+ // Compile using a build property with quotes
333
+ _ , stderr , err := cli .Run ("compile" , "-b" , fqbn , "--build-properties=\" build.extra_flags=\" -DMY_DEFINE=\" hello world\" \" " , sketchPath .String (), "--verbose" , "--clean" )
334
+ require .Error (t , err )
335
+ require .NotContains (t , string (stderr ), "Flag --build-properties has been deprecated, please use --build-property instead." )
336
+
337
+ // Try again with quotes
338
+ _ , stderr , err = cli .Run ("compile" , "-b" , fqbn , "--build-properties=\" build.extra_flags=-DMY_DEFINE=\" hello\" \" " , sketchPath .String (), "--verbose" , "--clean" )
339
+ require .Error (t , err )
340
+ require .NotContains (t , string (stderr ), "Flag --build-properties has been deprecated, please use --build-property instead." )
341
+
342
+ sketchName = "sketch_with_single_int_define"
343
+ sketchPath = cli .CopySketch (sketchName )
344
+
345
+ // Try without quotes
346
+ stdout , stderr , err := cli .Run ("compile" , "-b" , fqbn , "--build-properties=\" build.extra_flags=-DMY_DEFINE=1\" " , sketchPath .String (), "--verbose" , "--clean" )
347
+ require .NoError (t , err )
348
+ require .Contains (t , string (stderr ), "Flag --build-properties has been deprecated, please use --build-property instead." )
349
+ require .Contains (t , string (stdout ), "-DMY_DEFINE=1" )
350
+
351
+ sketchName = "sketch_with_multiple_int_defines"
352
+ sketchPath = cli .CopySketch (sketchName )
353
+
354
+ stdout , stderr , err = cli .Run ("compile" ,
355
+ "-b" ,
356
+ fqbn ,
357
+ "--build-properties" ,
358
+ "build.extra_flags=-DFIRST_PIN=1,compiler.cpp.extra_flags=-DSECOND_PIN=2" ,
359
+ sketchPath .String (),
360
+ "--verbose" ,
361
+ "--clean" )
362
+ require .NoError (t , err )
363
+ require .Contains (t , string (stderr ), "Flag --build-properties has been deprecated, please use --build-property instead." )
364
+ require .Contains (t , string (stdout ), "-DFIRST_PIN=1" )
365
+ require .Contains (t , string (stdout ), "-DSECOND_PIN=2" )
366
+ }
0 commit comments