@@ -190,6 +190,46 @@ func TestCompileWithExportBinariesEnvVar(t *testing.T) {
190190 require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.with_bootloader.hex" ).String ())
191191}
192192
193+ func TestCompileWithExportBinariesConfig (t * testing.T ) {
194+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
195+ defer env .CleanUp ()
196+
197+ // Init the environment explicitly
198+ _ , _ , err := cli .Run ("core" , "update-index" )
199+ require .NoError (t , err )
200+
201+ // Download latest AVR
202+ _ , _ , err = cli .Run ("core" , "install" , "arduino:avr" )
203+ require .NoError (t , err )
204+
205+ sketchName := "CompileWithExportBinariesEnvVar"
206+ sketchPath := cli .SketchbookDir ().Join (sketchName )
207+ fqbn := "arduino:avr:uno"
208+
209+ // Create a test sketch
210+ _ , _ , err = cli .Run ("sketch" , "new" , sketchPath .String ())
211+ require .NoError (t , err )
212+
213+ // Create settings with export binaries set to true
214+ envVar := cli .GetDefaultEnv ()
215+ envVar ["ARDUINO_SKETCH_ALWAYS_EXPORT_BINARIES" ] = "true"
216+ _ , _ , err = cli .RunWithCustomEnv (envVar , "config" , "init" , "--dest-dir" , "." )
217+ require .NoError (t , err )
218+
219+ // Test compilation with export binaries env var set
220+ _ , _ , err = cli .RunWithCustomEnv (envVar , "compile" , "-b" , fqbn , sketchPath .String ())
221+ require .NoError (t , err )
222+ require .DirExists (t , sketchPath .Join ("build" ).String ())
223+
224+ // Verifies binaries are exported when export binaries env var is set
225+ fqbn = strings .ReplaceAll (fqbn , ":" , "." )
226+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.eep" ).String ())
227+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.elf" ).String ())
228+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.hex" ).String ())
229+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.with_bootloader.bin" ).String ())
230+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.with_bootloader.hex" ).String ())
231+ }
232+
193233func TestCompileWithInvalidUrl (t * testing.T ) {
194234 env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
195235 defer env .CleanUp ()
0 commit comments