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:
authorJacob Vosmaer (GitLab) <jacob@gitlab.com>2018-01-19 21:06:29 +0300
committerJacob Vosmaer (GitLab) <jacob@gitlab.com>2018-01-19 21:06:29 +0300
commit904c980b4154942faee0a7ba8cfea7e1f6962b0c (patch)
tree44cf9b0c9ea31fd29b8535a5ecd6c6db607221b5 /internal/tempdir/tempdir_test.go
parent9113727ec9d97b7f57184ab85919a8bc46573311 (diff)
Automatically remove tempdir when context is over
Diffstat (limited to 'internal/tempdir/tempdir_test.go')
-rw-r--r--internal/tempdir/tempdir_test.go22
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)
}