diff --git a/Makefile b/Makefile index 5dded97481..86a5eddf80 100644 --- a/Makefile +++ b/Makefile @@ -69,13 +69,9 @@ help: ## Display this help ## -------------------------------------- .PHONY: test -test: test-tools ## Run the script check-everything.sh which will check all. +test: ## Run the script check-everything.sh which will check all. TRACE=1 ./hack/check-everything.sh -.PHONY: test-tools -test-tools: ## tests the tools codebase (setup-envtest) - cd tools/setup-envtest && go test ./... - ## -------------------------------------- ## Binaries ## -------------------------------------- diff --git a/hack/test-all.sh b/hack/test-all.sh index 34d841cfd0..9363fa5963 100755 --- a/hack/test-all.sh +++ b/hack/test-all.sh @@ -26,6 +26,7 @@ fi result=0 go test -v -race ${P_FLAG} ${MOD_OPT} ./... --ginkgo.fail-fast ${GINKGO_ARGS} || result=$? +(cd tools/setup-envtest && go test -v -race ${P_FLAG} ${MOD_OPT} ./... --ginkgo.fail-fast ${GINKGO_ARGS}) || result=$? if [[ -n ${ARTIFACTS:-} ]]; then mkdir -p ${ARTIFACTS} diff --git a/tools/setup-envtest/remote/http_client.go b/tools/setup-envtest/remote/http_client.go index a87ef1f105..7cbe3ee1d4 100644 --- a/tools/setup-envtest/remote/http_client.go +++ b/tools/setup-envtest/remote/http_client.go @@ -88,7 +88,7 @@ func (c *HTTPClient) ListVersions(ctx context.Context) ([]versions.Set, error) { } // sort in inverse order so that the newest one is first slices.SortStableFunc(res, func(i, j versions.Set) int { - return i.Version.Compare(j.Version) + return j.Version.Compare(i.Version) }) return res, nil diff --git a/tools/setup-envtest/store/store.go b/tools/setup-envtest/store/store.go index 1e1d4beb3c..1e8053e0cc 100644 --- a/tools/setup-envtest/store/store.go +++ b/tools/setup-envtest/store/store.go @@ -105,7 +105,8 @@ func (s *Store) List(ctx context.Context, matching Filter) ([]Item, error) { slices.SortStableFunc(res, func(i, j Item) int { if !i.Version.Matches(j.Version) { - return i.Version.Compare(j.Version) + // sort in inverse order so that the newest one is first + return j.Version.Compare(i.Version) } return orderPlatforms(i.Platform, j.Platform) }) diff --git a/tools/setup-envtest/versions/misc_test.go b/tools/setup-envtest/versions/misc_test.go index 1c0dbb68db..187218f82e 100644 --- a/tools/setup-envtest/versions/misc_test.go +++ b/tools/setup-envtest/versions/misc_test.go @@ -17,6 +17,9 @@ limitations under the License. package versions_test import ( + "math/rand/v2" + "slices" + . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -44,6 +47,23 @@ var _ = Describe("Concrete", func() { Specify("newer major should be newer", func() { Expect(ver1163.Compare(Concrete{Major: 0, Minor: 16, Patch: 3})).To(Equal(1)) }) + + Describe("sorting", func() { + ver16 := Concrete{Major: 1, Minor: 16} + ver17 := Concrete{Major: 1, Minor: 17} + many := []Concrete{ver16, ver17, ver1163} + + BeforeEach(func() { + rand.Shuffle(len(many), func(i, j int) { + many[i], many[j] = many[j], many[i] + }) + }) + + Specify("newer versions are later", func() { + slices.SortStableFunc(many, Concrete.Compare) + Expect(many).To(Equal([]Concrete{ver16, ver1163, ver17})) + }) + }) }) })