From 4077a81b344fe63541b43aceb05b3dbed2eb1951 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Wed, 29 Dec 2021 22:19:58 +0100 Subject: [PATCH] Add simple test for fs.TempFile on windows --- internal/fs/file_windows_test.go | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 internal/fs/file_windows_test.go diff --git a/internal/fs/file_windows_test.go b/internal/fs/file_windows_test.go new file mode 100644 index 000000000..71077709b --- /dev/null +++ b/internal/fs/file_windows_test.go @@ -0,0 +1,35 @@ +package fs_test + +import ( + "errors" + "os" + "testing" + + "github.com/restic/restic/internal/fs" + rtest "github.com/restic/restic/internal/test" +) + +func TestTempFile(t *testing.T) { + // create two temp files at the same time to check that the + // collision avoidance works + f, err := fs.TempFile("", "test") + fn := f.Name() + rtest.OK(t, err) + f2, err := fs.TempFile("", "test") + fn2 := f2.Name() + rtest.OK(t, err) + rtest.Assert(t, fn != fn2, "filenames don't differ %s", fn) + + _, err = os.Stat(fn) + rtest.OK(t, err) + _, err = os.Stat(fn2) + rtest.OK(t, err) + + rtest.OK(t, f.Close()) + rtest.OK(t, f2.Close()) + + _, err = os.Stat(fn) + rtest.Assert(t, errors.Is(err, os.ErrNotExist), "err %s", err) + _, err = os.Stat(fn2) + rtest.Assert(t, errors.Is(err, os.ErrNotExist), "err %s", err) +}