@@ -17,13 +17,14 @@ package compile_test
1717
1818import (
1919 "bytes"
20+ "cmp"
2021 "encoding/json"
2122 "os/exec"
23+ "slices"
2224 "strings"
2325 "testing"
2426 "text/template"
2527 "time"
26- "slices"
2728
2829 "github.com/arduino/arduino-cli/arduino/builder/cpp"
2930 "github.com/arduino/arduino-cli/internal/integrationtest"
@@ -176,7 +177,7 @@ func testBuilderSketchWithSubfolders(t *testing.T, env *integrationtest.Environm
176177 // Build
177178 out , err := tryBuild (t , env , cli , "arduino:avr:leonardo" )
178179 importedLibraries := out .BuilderResult .UsedLibraries
179- slices .SortFunc (importedLibraries , func (x , y * builderLibrary ) bool { return x .Name < y .Name })
180+ slices .SortFunc (importedLibraries , func (x , y * builderLibrary ) int { return cmp . Compare ( x .Name , y .Name ) })
180181 require .NoError (t , err )
181182 require .Equal (t , 3 , len (importedLibraries ))
182183 require .Equal (t , "testlib1" , importedLibraries [0 ].Name )
@@ -570,7 +571,11 @@ func testBuilderSketchWithConflictingLibraries(t *testing.T, env *integrationtes
570571 out , err := tryBuild (t , env , cli , "arduino:avr:leonardo" )
571572 require .NoError (t , err )
572573 libs := out .BuilderResult .UsedLibraries
573- slices .SortFunc (libs , func (x , y * builderLibrary ) bool { return x .Name < y .Name })
574+
575+ // SortFunc sorts the slice x in ascending order as determined by the cmp function.
576+ // This sort is not guaranteed to be stable. cmp(a, b) should return a negative number when a \< b,
577+ // a positive number when a > b and zero when a == b.
578+ slices .SortFunc (libs , func (x , y * builderLibrary ) int { return cmp .Compare (x .Name , y .Name ) })
574579 require .Len (t , libs , 2 )
575580 require .Equal (t , "Bridge" , libs [0 ].Name )
576581 require .Equal (t , "IRremote" , libs [1 ].Name )
@@ -583,7 +588,7 @@ func testBuilderSketchLibraryProvidesAllIncludes(t *testing.T, env *integrationt
583588 out , err := tryBuild (t , env , cli , "arduino:avr:leonardo" )
584589 require .NoError (t , err )
585590 libs := out .BuilderResult .UsedLibraries
586- slices .SortFunc (libs , func (x , y * builderLibrary ) bool { return x .Name < y .Name })
591+ slices .SortFunc (libs , func (x , y * builderLibrary ) int { return cmp . Compare ( x .Name , y .Name ) })
587592 require .Len (t , libs , 2 )
588593 require .Equal (t , "ANewLibrary-master" , libs [0 ].Name )
589594 require .Equal (t , "IRremote" , libs [1 ].Name )
0 commit comments