Merge pull request #114761 from pohly/e2e-storage-deterministic-order

e2e storage: define local PersistentVolume tests in deterministic order
This commit is contained in:
Kubernetes Prow Robot 2023-01-02 14:57:41 -08:00 committed by GitHub
commit 5f0e7932f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -21,6 +21,7 @@ import (
"fmt" "fmt"
"math/rand" "math/rand"
"path/filepath" "path/filepath"
"sort"
"strconv" "strconv"
"strings" "strings"
"sync" "sync"
@ -108,6 +109,19 @@ var setupLocalVolumeMap = map[localVolumeType]utils.LocalVolumeType{
BlockFsWithoutFormatLocalVolumeType: utils.LocalVolumeBlock, // block device in Filesystem mode (default in this test suite) BlockFsWithoutFormatLocalVolumeType: utils.LocalVolumeBlock, // block device in Filesystem mode (default in this test suite)
} }
// setupLocalVolumeMapKeys returns all keys in a sorted slice. This is needed
// to define tests in a deterministic order.
func setupLocalVolumeMapKeys() []localVolumeType {
var keys []localVolumeType
for key := range setupLocalVolumeMap {
keys = append(keys, key)
}
sort.Slice(keys, func(i, j int) bool {
return keys[i] < keys[j]
})
return keys
}
type localTestVolume struct { type localTestVolume struct {
// Local test resource // Local test resource
ltr *utils.LocalTestResource ltr *utils.LocalTestResource
@ -181,7 +195,7 @@ var _ = utils.SIGDescribe("PersistentVolumes-local ", func() {
} }
}) })
for tempTestVolType := range setupLocalVolumeMap { for _, tempTestVolType := range setupLocalVolumeMapKeys() {
// New variable required for gingko test closures // New variable required for gingko test closures
testVolType := tempTestVolType testVolType := tempTestVolType