diff options
author | Jacob Vosmaer (GitLab) <jacob@gitlab.com> | 2018-01-19 21:06:29 +0300 |
---|---|---|
committer | Jacob Vosmaer (GitLab) <jacob@gitlab.com> | 2018-01-19 21:06:29 +0300 |
commit | 904c980b4154942faee0a7ba8cfea7e1f6962b0c (patch) | |
tree | 44cf9b0c9ea31fd29b8535a5ecd6c6db607221b5 /internal/tempdir/tempdir_test.go | |
parent | 9113727ec9d97b7f57184ab85919a8bc46573311 (diff) |
Automatically remove tempdir when context is over
Diffstat (limited to 'internal/tempdir/tempdir_test.go')
-rw-r--r-- | internal/tempdir/tempdir_test.go | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/internal/tempdir/tempdir_test.go b/internal/tempdir/tempdir_test.go index a356474dc..833292abb 100644 --- a/internal/tempdir/tempdir_test.go +++ b/internal/tempdir/tempdir_test.go @@ -14,20 +14,34 @@ import ( ) func TestNewSuccess(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() repo := testhelper.TestRepository() - tempDir, err := New(repo) + tempDir, err := New(ctx, repo) require.NoError(t, err) - defer os.RemoveAll(tempDir) err = ioutil.WriteFile(path.Join(tempDir, "test"), []byte("hello"), 0644) require.NoError(t, err, "write file in tempdir") - require.NoError(t, os.RemoveAll(tempDir), "remove tempdir") + cancel() // This should trigger async removal of the temporary directory + + // Poll because the directory removal is async + for i := 0; i < 100; i++ { + _, err = os.Stat(tempDir) + if err != nil { + break + } + time.Sleep(10 * time.Millisecond) + } + + require.True(t, os.IsNotExist(err), "expected directory to have been removed, got error %v", err) } func TestNewFailStorageUnknown(t *testing.T) { - _, err := New(&pb.Repository{StorageName: "does-not-exist", RelativePath: "foobar.git"}) + ctx, cancel := testhelper.Context() + defer cancel() + _, err := New(ctx, &pb.Repository{StorageName: "does-not-exist", RelativePath: "foobar.git"}) require.Error(t, err) } |