@@ -20,6 +20,7 @@ import (
20
20
"encoding/hex"
21
21
"encoding/json"
22
22
"os"
23
+ "sort"
23
24
"strings"
24
25
"testing"
25
26
"time"
@@ -1043,18 +1044,41 @@ func compileWithRelativeBuildPath(t *testing.T, env *integrationtest.Environment
1043
1044
absoluteBuildPath := cli .SketchbookDir ().Join ("build_path" )
1044
1045
builtFiles , err := absoluteBuildPath .ReadDir ()
1045
1046
require .NoError (t , err )
1046
- require .Contains (t , builtFiles [8 ].String (), sketchName + ".ino.eep" )
1047
- require .Contains (t , builtFiles [9 ].String (), sketchName + ".ino.elf" )
1048
- require .Contains (t , builtFiles [10 ].String (), sketchName + ".ino.hex" )
1049
- require .Contains (t , builtFiles [11 ].String (), sketchName + ".ino.with_bootloader.bin" )
1050
- require .Contains (t , builtFiles [12 ].String (), sketchName + ".ino.with_bootloader.hex" )
1051
- require .Contains (t , builtFiles [0 ].String (), "build.options.json" )
1052
- require .Contains (t , builtFiles [1 ].String (), "compile_commands.json" )
1053
- require .Contains (t , builtFiles [2 ].String (), "core" )
1054
- require .Contains (t , builtFiles [3 ].String (), "includes.cache" )
1055
- require .Contains (t , builtFiles [4 ].String (), "libraries" )
1056
- require .Contains (t , builtFiles [6 ].String (), "preproc" )
1057
- require .Contains (t , builtFiles [7 ].String (), "sketch" )
1047
+
1048
+ expectedFiles := []string {
1049
+ sketchName + ".ino.eep" ,
1050
+ sketchName + ".ino.elf" ,
1051
+ sketchName + ".ino.hex" ,
1052
+ sketchName + ".ino.with_bootloader.bin" ,
1053
+ sketchName + ".ino.with_bootloader.hex" ,
1054
+ "build.options.json" ,
1055
+ "compile_commands.json" ,
1056
+ "core" ,
1057
+ "includes.cache" ,
1058
+ "libraries" ,
1059
+ "preproc" ,
1060
+ "sketch" ,
1061
+ }
1062
+
1063
+ foundFiles := []string {}
1064
+ for _ , builtFile := range builtFiles {
1065
+ if sliceIncludes (expectedFiles , builtFile .Base ()) {
1066
+ foundFiles = append (foundFiles , builtFile .Base ())
1067
+ }
1068
+ }
1069
+ sort .Strings (expectedFiles )
1070
+ sort .Strings (foundFiles )
1071
+ require .Equal (t , expectedFiles , foundFiles )
1072
+ }
1073
+
1074
+ // TODO: remove this when a generic library is introduced
1075
+ func sliceIncludes [T comparable ](slice []T , target T ) bool {
1076
+ for _ , e := range slice {
1077
+ if e == target {
1078
+ return true
1079
+ }
1080
+ }
1081
+ return false
1058
1082
}
1059
1083
1060
1084
func compileWithFakeSecureBootCore (t * testing.T , env * integrationtest.Environment , cli * integrationtest.ArduinoCLI ) {
0 commit comments