swarm/storage/localstore: fix tests for windows os (#19161)
This commit is contained in:
parent
340a53a98b
commit
c83ba9e794
|
@ -22,6 +22,7 @@ import (
|
|||
"io/ioutil"
|
||||
"math/rand"
|
||||
"os"
|
||||
"runtime"
|
||||
"sort"
|
||||
"strconv"
|
||||
"sync"
|
||||
|
@ -34,6 +35,26 @@ import (
|
|||
"github.com/syndtr/goleveldb/leveldb"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// Some of the tests in localstore package rely on the same ordering of
|
||||
// items uploaded or accessed compared to the ordering of items in indexes
|
||||
// that contain StoreTimestamp or AccessTimestamp in keys. In tests
|
||||
// where the same order is required from the database as the order
|
||||
// in which chunks are put or accessed, if the StoreTimestamp or
|
||||
// AccessTimestamp are the same for two or more sequential items
|
||||
// their order in database will be based on the chunk address value,
|
||||
// in which case the ordering of items/chunks stored in a test slice
|
||||
// will not be the same. To ensure the same ordering in database on such
|
||||
// indexes on windows systems, an additional short sleep is added to
|
||||
// the now function.
|
||||
if runtime.GOOS == "windows" {
|
||||
setNow(func() int64 {
|
||||
time.Sleep(time.Microsecond)
|
||||
return time.Now().UTC().UnixNano()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TestDB validates if the chunk can be uploaded and
|
||||
// correctly retrieved.
|
||||
func TestDB(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue