@@ -1321,3 +1321,35 @@ func buildWithCustomBuildPathAndOUtputDirFlag(t *testing.T, env *integrationtest
13211321 require .NotEmpty (t , content )
13221322 }
13231323}
1324+
1325+ func TestCompileWithOutputDirFlagIgnoringFoldersCreatedByEsp32RainMakerLib (t * testing.T ) {
1326+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
1327+ defer env .CleanUp ()
1328+
1329+ _ , _ , err := cli .Run ("update" )
1330+ require .NoError (t , err )
1331+
1332+ // Update index with esp32 core and install it
1333+ url := "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json"
1334+ _ , _ , err = cli .Run ("core" , "update-index" , "--additional-urls=" + url )
1335+ require .NoError (t , err )
1336+ _ , _ , err = cli .Run ("core" , "install" , "esp32:esp32@3.0.7" , "--additional-urls=" + url )
1337+ require .NoError (t , err )
1338+
1339+ sketchName := "RainMakerSketch"
1340+ sketchPath := cli .SketchbookDir ().Join (sketchName )
1341+ _ , _ , err = cli .Run ("sketch" , "new" , sketchPath .String ())
1342+ require .NoError (t , err )
1343+
1344+ err = sketchPath .Join ("RainMakerSketch.ino" ).WriteFile ([]byte (`
1345+ #include "RMaker.h"
1346+ void setup() { }
1347+ void loop() { }` ,
1348+ ))
1349+ require .NoError (t , err )
1350+
1351+ outputDir := cli .SketchbookDir ().Join ("test_dir" , "output_dir" )
1352+ _ , stderr , err := cli .Run ("compile" , "-b" , "esp32:esp32:esp32" , sketchPath .String (), "--output-dir" , outputDir .String ())
1353+ require .NoError (t , err )
1354+ require .NotContains (t , stderr , []byte ("Error during build: Error copying output file" ))
1355+ }
0 commit comments