forked from taskcluster/taskcluster
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmounts_windows_test.go
54 lines (51 loc) · 1.32 KB
/
mounts_windows_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package main
import (
"os"
"path/filepath"
"strings"
"testing"
)
func TestRenameCrossDevice(t *testing.T) {
if os.Getenv("GW_SKIP_Z_DRIVE_TESTS") != "" {
t.Skip("Skipping since env var GW_SKIP_Z_DRIVE_TESTS env var is set")
}
exists, err := exists("Z:\\")
if err != nil {
t.Fatal("Problem scanning for Z: drive")
}
if !exists {
t.Fatal("Z: drive does not exist on this environment")
}
if strings.HasPrefix(cwd, "Z:\\") {
t.Fatal("Current directory is already on Z: so rename would not be cross device (Z: -> Z:)")
}
err = os.MkdirAll("Z:\\a\\b", 0700)
if err != nil {
t.Fatal("Could not create directory Z:\\a\\b")
}
randomFile := "Z:\\a\\b\\randomFile.txt"
err = os.WriteFile(randomFile, []byte("some content"), 0600)
if err != nil {
t.Fatalf("Hit error creating %v: %v", randomFile, err)
}
sourceDir := "Z:\\a"
targetDir := filepath.Join(cwd, "a")
err = RenameCrossDevice(sourceDir, targetDir)
if err != nil {
t.Fatalf("Hit error renaming folder %v as %v:\n%v", sourceDir, targetDir, err)
}
err = os.RemoveAll(targetDir)
if err != nil {
t.Fatalf("Could not clean up after test - not able to remove folder %v: %v", targetDir, err)
}
}
func exists(path string) (bool, error) {
_, err := os.Stat(path)
if err == nil {
return true, nil
}
if os.IsNotExist(err) {
return false, nil
}
return true, err
}