From 774c4582b948dee14ad10957e34edce75abb34c9 Mon Sep 17 00:00:00 2001 From: perdasilva Date: Mon, 20 Jun 2022 11:33:18 +0200 Subject: [PATCH 1/2] Revert "fix removed_apis_test" This reverts commit beb9613e0dc43e74ddcc583dfca3e59dd19c2660. --- pkg/validation/internal/removed_apis_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/validation/internal/removed_apis_test.go b/pkg/validation/internal/removed_apis_test.go index 1e962720b..1b1aabdab 100644 --- a/pkg/validation/internal/removed_apis_test.go +++ b/pkg/validation/internal/removed_apis_test.go @@ -1,11 +1,10 @@ package internal import ( - "reflect" - "testing" - "github.com/operator-framework/api/pkg/manifests" "github.com/stretchr/testify/require" + "reflect" + "testing" ) func Test_GetRemovedAPIsOn1_22From(t *testing.T) { From 4f438acb9229690bfdc57df18805ca4700899dbc Mon Sep 17 00:00:00 2001 From: perdasilva Date: Mon, 20 Jun 2022 11:35:02 +0200 Subject: [PATCH 2/2] refactor removed_apis_test to test on sorted error strings to remove flakiness Signed-off-by: perdasilva --- pkg/validation/internal/removed_apis_test.go | 33 +++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/pkg/validation/internal/removed_apis_test.go b/pkg/validation/internal/removed_apis_test.go index 1b1aabdab..aa3d7ae71 100644 --- a/pkg/validation/internal/removed_apis_test.go +++ b/pkg/validation/internal/removed_apis_test.go @@ -1,10 +1,13 @@ package internal import ( - "github.com/operator-framework/api/pkg/manifests" - "github.com/stretchr/testify/require" "reflect" + "sort" + "strings" "testing" + + "github.com/operator-framework/api/pkg/manifests" + "github.com/stretchr/testify/require" ) func Test_GetRemovedAPIsOn1_22From(t *testing.T) { @@ -280,20 +283,40 @@ func TestValidateDeprecatedAPIS(t *testing.T) { require.Equal(t, tt.wantWarning, len(warnsResult) > 0) if tt.wantWarning { require.Equal(t, len(tt.warnStrings), len(warnsResult)) + // testing against sorted strings to address flakiness on the order + // of APIs listed + sortedWarnStrings := sortStringSlice(tt.warnStrings) for _, w := range warnsResult { wString := w.Error() - require.Contains(t, tt.warnStrings, wString) + require.Contains(t, sortedWarnStrings, sortString(wString)) } } require.Equal(t, tt.wantError, len(errsResult) > 0) if tt.wantError { require.Equal(t, len(tt.errStrings), len(errsResult)) + // testing against sorted strings to address flakiness on the order + // of APIs listed + sortedErrStrings := sortStringSlice(tt.errStrings) for _, err := range errsResult { - errString := err.Error() - require.Contains(t, tt.errStrings, errString) + errString := sortString(err.Error()) + require.Contains(t, sortedErrStrings, errString) } } }) } } + +func sortString(str string) string { + split := strings.Split(str, "") + sort.Strings(split) + return strings.Join(split, "") +} + +func sortStringSlice(slice []string) []string { + var newSlice []string + for _, str := range slice { + newSlice = append(newSlice, sortString(str)) + } + return newSlice +}