github.com/lxpollitt/docker@v1.5.0/utils/utils_test.go (about) 1 package utils 2 3 import ( 4 "os" 5 "testing" 6 ) 7 8 func TestReplaceAndAppendEnvVars(t *testing.T) { 9 var ( 10 d = []string{"HOME=/"} 11 o = []string{"HOME=/root", "TERM=xterm"} 12 ) 13 14 env := ReplaceOrAppendEnvValues(d, o) 15 if len(env) != 2 { 16 t.Fatalf("expected len of 2 got %d", len(env)) 17 } 18 if env[0] != "HOME=/root" { 19 t.Fatalf("expected HOME=/root got '%s'", env[0]) 20 } 21 if env[1] != "TERM=xterm" { 22 t.Fatalf("expected TERM=xterm got '%s'", env[1]) 23 } 24 } 25 26 // Reading a symlink to a directory must return the directory 27 func TestReadSymlinkedDirectoryExistingDirectory(t *testing.T) { 28 var err error 29 if err = os.Mkdir("/tmp/testReadSymlinkToExistingDirectory", 0777); err != nil { 30 t.Errorf("failed to create directory: %s", err) 31 } 32 33 if err = os.Symlink("/tmp/testReadSymlinkToExistingDirectory", "/tmp/dirLinkTest"); err != nil { 34 t.Errorf("failed to create symlink: %s", err) 35 } 36 37 var path string 38 if path, err = ReadSymlinkedDirectory("/tmp/dirLinkTest"); err != nil { 39 t.Fatalf("failed to read symlink to directory: %s", err) 40 } 41 42 if path != "/tmp/testReadSymlinkToExistingDirectory" { 43 t.Fatalf("symlink returned unexpected directory: %s", path) 44 } 45 46 if err = os.Remove("/tmp/testReadSymlinkToExistingDirectory"); err != nil { 47 t.Errorf("failed to remove temporary directory: %s", err) 48 } 49 50 if err = os.Remove("/tmp/dirLinkTest"); err != nil { 51 t.Errorf("failed to remove symlink: %s", err) 52 } 53 } 54 55 // Reading a non-existing symlink must fail 56 func TestReadSymlinkedDirectoryNonExistingSymlink(t *testing.T) { 57 var path string 58 var err error 59 if path, err = ReadSymlinkedDirectory("/tmp/test/foo/Non/ExistingPath"); err == nil { 60 t.Fatalf("error expected for non-existing symlink") 61 } 62 63 if path != "" { 64 t.Fatalf("expected empty path, but '%s' was returned", path) 65 } 66 } 67 68 // Reading a symlink to a file must fail 69 func TestReadSymlinkedDirectoryToFile(t *testing.T) { 70 var err error 71 var file *os.File 72 73 if file, err = os.Create("/tmp/testReadSymlinkToFile"); err != nil { 74 t.Fatalf("failed to create file: %s", err) 75 } 76 77 file.Close() 78 79 if err = os.Symlink("/tmp/testReadSymlinkToFile", "/tmp/fileLinkTest"); err != nil { 80 t.Errorf("failed to create symlink: %s", err) 81 } 82 83 var path string 84 if path, err = ReadSymlinkedDirectory("/tmp/fileLinkTest"); err == nil { 85 t.Fatalf("ReadSymlinkedDirectory on a symlink to a file should've failed") 86 } 87 88 if path != "" { 89 t.Fatalf("path should've been empty: %s", path) 90 } 91 92 if err = os.Remove("/tmp/testReadSymlinkToFile"); err != nil { 93 t.Errorf("failed to remove file: %s", err) 94 } 95 96 if err = os.Remove("/tmp/fileLinkTest"); err != nil { 97 t.Errorf("failed to remove symlink: %s", err) 98 } 99 }