Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e6c2e6b

Browse files
committedDec 17, 2024··
test that the export binaries should not fail if tries to copy a dir
1 parent 84fc413 commit e6c2e6b

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
 

‎internal/integrationtest/compile_1/compile_test.go

+43
Original file line numberDiff line numberDiff line change
@@ -1321,3 +1321,46 @@ 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+
// When importing the `RMaker` library, the esp32 core produces in output a folder,
1345+
// containg all the binaries exported. The name of the folder matches the sketch name.
1346+
// In out case:
1347+
// cache-dir/
1348+
// |- RainMakerSketch.ino/ <--- This should be ignored
1349+
// |- RainMakerSketch.ino.uf2
1350+
// |- RainMakerSketch.ino.bin
1351+
// |- ...
1352+
err = sketchPath.Join(sketchName + ".ino").WriteFile([]byte(`
1353+
#include "RMaker.h"
1354+
void setup() { }
1355+
void loop() { }`,
1356+
))
1357+
require.NoError(t, err)
1358+
1359+
buildPath := cli.DataDir().Join("test_dir", "build_dir")
1360+
outputDir := cli.SketchbookDir().Join("test_dir", "output_dir")
1361+
_, stderr, err := cli.Run("compile", "-b", "esp32:esp32:esp32", sketchPath.String(), "--build-path", buildPath.String(), "--output-dir", outputDir.String())
1362+
require.NoError(t, err)
1363+
require.NotContains(t, stderr, []byte("Error during build: Error copying output file"))
1364+
require.DirExists(t, buildPath.Join(sketchName+".ino").String())
1365+
require.NoDirExists(t, outputDir.Join(sketchName+".ino").String())
1366+
}

0 commit comments

Comments
 (0)
Please sign in to comment.