Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2021-12-09 14:33:03 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2021-12-14 09:54:12 +0300
commit08d5b7b268e36da27a7843a1c7d7021ef9a96487 (patch)
treecc0a2dbcaf62b6848659299915d5220d21fb8668 /internal/streamcache
parent8907e9a9637182efa7576024008882e790c77c89 (diff)
tests: Convert to use testhelper contexts
We're about to disallow use of "normal" contexts created via the `context` package given that they do not perform sanity checks for feature flags. Instead, contexts should be created via the testhelper package. Convert tests to use the testhelper context.
Diffstat (limited to 'internal/streamcache')
-rw-r--r--internal/streamcache/cache_test.go53
1 files changed, 41 insertions, 12 deletions
diff --git a/internal/streamcache/cache_test.go b/internal/streamcache/cache_test.go
index da8b5e157..1bb9009ea 100644
--- a/internal/streamcache/cache_test.go
+++ b/internal/streamcache/cache_test.go
@@ -29,6 +29,9 @@ func newCache(dir string) Cache {
}
func TestCache_writeOneReadMultiple(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
tmp := testhelper.TempDir(t)
c := newCache(tmp)
@@ -50,7 +53,7 @@ func TestCache_writeOneReadMultiple(t *testing.T) {
out, err := io.ReadAll(r)
require.NoError(t, err)
- require.NoError(t, r.Wait(context.Background()))
+ require.NoError(t, r.Wait(ctx))
require.Equal(t, content(0), string(out), "expect cache hits for all i > 0")
})
}
@@ -59,6 +62,9 @@ func TestCache_writeOneReadMultiple(t *testing.T) {
}
func TestCache_manyConcurrentWrites(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
tmp := testhelper.TempDir(t)
c := newCache(tmp)
@@ -94,7 +100,7 @@ func TestCache_manyConcurrentWrites(t *testing.T) {
}
output[i] = string(out)
- return r.Wait(context.Background())
+ return r.Wait(ctx)
}()
}(i)
}
@@ -175,6 +181,9 @@ func TestCache_deletedFile(t *testing.T) {
}
func TestCache_scope(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
tmp := testhelper.TempDir(t)
const (
@@ -215,13 +224,16 @@ func TestCache_scope(t *testing.T) {
out, err := io.ReadAll(r)
require.NoError(t, err)
- require.NoError(t, r.Wait(context.Background()))
+ require.NoError(t, r.Wait(ctx))
require.Equal(t, content, string(out))
}
}
func TestCache_diskCleanup(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
tmp := testhelper.TempDir(t)
const (
@@ -254,7 +266,7 @@ func TestCache_diskCleanup(t *testing.T) {
out1, err := io.ReadAll(r1)
require.NoError(t, err)
require.Equal(t, content(1), string(out1))
- require.NoError(t, r1.Wait(context.Background()))
+ require.NoError(t, r1.Wait(ctx))
// File and index entry should still exist because cleanup goroutines are blocked.
requireCacheFiles(t, tmp, 1)
@@ -292,13 +304,16 @@ func TestCache_diskCleanup(t *testing.T) {
out2, err := io.ReadAll(r2)
require.NoError(t, err)
- require.NoError(t, r2.Wait(context.Background()))
+ require.NoError(t, r2.Wait(ctx))
// Sanity check: no stale value returned by the cache
require.Equal(t, content(2), string(out2))
}
func TestCache_failedWrite(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
tmp := testhelper.TempDir(t)
c := newCache(tmp)
@@ -327,7 +342,7 @@ func TestCache_failedWrite(t *testing.T) {
_, err = io.Copy(io.Discard, r1)
require.NoError(t, err, "errors on the write end are not propagated via Read()")
require.NoError(t, r1.Close(), "errors on the write end are not propagated via Close()")
- require.Error(t, r1.Wait(context.Background()), "error propagation happens via Wait()")
+ require.Error(t, r1.Wait(ctx), "error propagation happens via Wait()")
time.Sleep(10 * time.Millisecond)
@@ -339,7 +354,7 @@ func TestCache_failedWrite(t *testing.T) {
out, err := io.ReadAll(r2)
require.NoError(t, err)
- require.NoError(t, r2.Wait(context.Background()))
+ require.NoError(t, r2.Wait(ctx))
require.Equal(t, happy, string(out))
})
}
@@ -359,6 +374,9 @@ func TestCache_failCreateFile(t *testing.T) {
}
func TestCache_unWriteableFile(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
tmp := testhelper.TempDir(t)
c := newCache(tmp)
@@ -378,12 +396,15 @@ func TestCache_unWriteableFile(t *testing.T) {
_, err = io.ReadAll(r)
require.NoError(t, err)
- err = r.Wait(context.Background())
+ err = r.Wait(ctx)
require.IsType(t, &os.PathError{}, err)
require.Equal(t, "write", err.(*os.PathError).Op)
}
func TestCache_unCloseableFile(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
tmp := testhelper.TempDir(t)
c := newCache(tmp)
@@ -404,7 +425,7 @@ func TestCache_unCloseableFile(t *testing.T) {
_, err = io.ReadAll(r)
require.NoError(t, err)
- err = r.Wait(context.Background())
+ err = r.Wait(ctx)
require.IsType(t, &os.PathError{}, err)
require.Equal(t, "close", err.(*os.PathError).Op)
}
@@ -430,16 +451,21 @@ func TestCache_cannotOpenFileForReading(t *testing.T) {
}
func TestWaiter(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
w := newWaiter()
err := errors.New("test error")
w.SetError(err)
- require.Equal(t, err, w.Wait(context.Background()))
+ require.Equal(t, err, w.Wait(ctx))
}
func TestWaiter_cancel(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
w := newWaiter()
errc := make(chan error, 1)
- ctx, cancel := context.WithCancel(context.Background())
go func() { errc <- w.Wait(ctx) }()
cancel()
@@ -447,6 +473,9 @@ func TestWaiter_cancel(t *testing.T) {
}
func TestNullCache(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
const (
N = 1000
inputSize = 4096
@@ -500,7 +529,7 @@ func TestNullCache(t *testing.T) {
return errors.New("output does not match input")
}
- return s.Wait(context.Background())
+ return s.Wait(ctx)
}()
}()
}