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