diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml index fe6a1eb7a..8c6cf06bf 100644 --- a/.github/workflows/windows.yaml +++ b/.github/workflows/windows.yaml @@ -39,5 +39,5 @@ jobs: - name: Unit test env: SKIP_INTEGRATION_TESTS: 1 - run: go test -mod=vendor -v ./cache/... ./client/... ./frontend/dockerfile/... ./session/... ./source/... ./util/... + run: go test -mod=vendor -v ./cache/... ./client/... ./frontend/dockerfile/... ./session/... ./solver/... ./source/... ./util/... working-directory: src/github.com/moby/buildkit diff --git a/solver/testutil/cachestorage_testsuite.go b/solver/testutil/cachestorage_testsuite.go index 41e94d3fa..e883ddd2a 100644 --- a/solver/testutil/cachestorage_testsuite.go +++ b/solver/testutil/cachestorage_testsuite.go @@ -37,12 +37,20 @@ func runStorageTest(t *testing.T, fn func(t *testing.T, st solver.CacheKeyStorag func testResults(t *testing.T, st solver.CacheKeyStorage) { t.Parallel() + timeNow := time.Now() err := st.AddResult("foo", solver.CacheResult{ ID: "foo0", - CreatedAt: time.Now(), + CreatedAt: timeNow, }) require.NoError(t, err) + // Windows time.Now() resolution can be quite coarse, so frequently + // time.Now() will be the same between two nearby calls. + if time.Now() == timeNow { + time.Sleep(time.Duration(100) * time.Millisecond) + } + require.NotEqual(t, timeNow, time.Now(), "time has stopped") + err = st.AddResult("foo", solver.CacheResult{ ID: "foo1", CreatedAt: time.Now(), @@ -67,7 +75,7 @@ func testResults(t *testing.T, st solver.CacheKeyStorage) { require.True(t, ok) f1, ok := m["foo1"] require.True(t, ok) - require.True(t, f0.CreatedAt.Before(f1.CreatedAt)) + require.True(t, f0.CreatedAt.Before(f1.CreatedAt), "f0.CreatedAt %v was not Before f1.CreatedAt %v", f0.CreatedAt, f1.CreatedAt) m = map[string]solver.CacheResult{} err = st.WalkResults("bar", func(r solver.CacheResult) error {