@@ -190,6 +190,46 @@ func TestCompileWithExportBinariesEnvVar(t *testing.T) {
190
190
require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.with_bootloader.hex" ).String ())
191
191
}
192
192
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
+
193
233
func TestCompileWithInvalidUrl (t * testing.T ) {
194
234
env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
195
235
defer env .CleanUp ()
0 commit comments