@@ -151,6 +151,43 @@ func TestCompileWithCustomBuildPath(t *testing.T) {
151
151
require .NoFileExists (t , buildDir .Join (sketchName + ".ino.with_bootloader.hex" ).String ())
152
152
}
153
153
154
+ func TestCompileWithExportBinariesEnvVar (t * testing.T ) {
155
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
156
+ defer env .CleanUp ()
157
+
158
+ // Init the environment explicitly
159
+ _ , _ , err := cli .Run ("core" , "update-index" )
160
+ require .NoError (t , err )
161
+
162
+ // Download latest AVR
163
+ _ , _ , err = cli .Run ("core" , "install" , "arduino:avr" )
164
+ require .NoError (t , err )
165
+
166
+ sketchName := "CompileWithExportBinariesEnvVar"
167
+ sketchPath := cli .SketchbookDir ().Join (sketchName )
168
+ fqbn := "arduino:avr:uno"
169
+
170
+ // Create a test sketch
171
+ _ , _ , err = cli .Run ("sketch" , "new" , sketchPath .String ())
172
+ require .NoError (t , err )
173
+
174
+ envVar := cli .GetDefaultEnv ()
175
+ envVar ["ARDUINO_SKETCH_ALWAYS_EXPORT_BINARIES" ] = "true"
176
+
177
+ // Test compilation with export binaries env var set
178
+ _ , _ , err = cli .RunWithCustomEnv (envVar , "compile" , "-b" , fqbn , sketchPath .String ())
179
+ require .NoError (t , err )
180
+ require .DirExists (t , sketchPath .Join ("build" ).String ())
181
+
182
+ // Verifies binaries are exported when export binaries env var is set
183
+ fqbn = strings .ReplaceAll (fqbn , ":" , "." )
184
+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.eep" ).String ())
185
+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.elf" ).String ())
186
+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.hex" ).String ())
187
+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.with_bootloader.bin" ).String ())
188
+ require .FileExists (t , sketchPath .Join ("build" , fqbn , sketchName + ".ino.with_bootloader.hex" ).String ())
189
+ }
190
+
154
191
func TestCompileWithInvalidUrl (t * testing.T ) {
155
192
env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
156
193
defer env .CleanUp ()
0 commit comments