github.com/guilhermebr/docker@v1.4.2-0.20150428121140-67da055cebca/pkg/fileutils/fileutils_test.go (about) 1 package fileutils 2 3 import ( 4 "os" 5 "testing" 6 ) 7 8 // Reading a symlink to a directory must return the directory 9 func TestReadSymlinkedDirectoryExistingDirectory(t *testing.T) { 10 var err error 11 if err = os.Mkdir("/tmp/testReadSymlinkToExistingDirectory", 0777); err != nil { 12 t.Errorf("failed to create directory: %s", err) 13 } 14 15 if err = os.Symlink("/tmp/testReadSymlinkToExistingDirectory", "/tmp/dirLinkTest"); err != nil { 16 t.Errorf("failed to create symlink: %s", err) 17 } 18 19 var path string 20 if path, err = ReadSymlinkedDirectory("/tmp/dirLinkTest"); err != nil { 21 t.Fatalf("failed to read symlink to directory: %s", err) 22 } 23 24 if path != "/tmp/testReadSymlinkToExistingDirectory" { 25 t.Fatalf("symlink returned unexpected directory: %s", path) 26 } 27 28 if err = os.Remove("/tmp/testReadSymlinkToExistingDirectory"); err != nil { 29 t.Errorf("failed to remove temporary directory: %s", err) 30 } 31 32 if err = os.Remove("/tmp/dirLinkTest"); err != nil { 33 t.Errorf("failed to remove symlink: %s", err) 34 } 35 } 36 37 // Reading a non-existing symlink must fail 38 func TestReadSymlinkedDirectoryNonExistingSymlink(t *testing.T) { 39 var path string 40 var err error 41 if path, err = ReadSymlinkedDirectory("/tmp/test/foo/Non/ExistingPath"); err == nil { 42 t.Fatalf("error expected for non-existing symlink") 43 } 44 45 if path != "" { 46 t.Fatalf("expected empty path, but '%s' was returned", path) 47 } 48 } 49 50 // Reading a symlink to a file must fail 51 func TestReadSymlinkedDirectoryToFile(t *testing.T) { 52 var err error 53 var file *os.File 54 55 if file, err = os.Create("/tmp/testReadSymlinkToFile"); err != nil { 56 t.Fatalf("failed to create file: %s", err) 57 } 58 59 file.Close() 60 61 if err = os.Symlink("/tmp/testReadSymlinkToFile", "/tmp/fileLinkTest"); err != nil { 62 t.Errorf("failed to create symlink: %s", err) 63 } 64 65 var path string 66 if path, err = ReadSymlinkedDirectory("/tmp/fileLinkTest"); err == nil { 67 t.Fatalf("ReadSymlinkedDirectory on a symlink to a file should've failed") 68 } 69 70 if path != "" { 71 t.Fatalf("path should've been empty: %s", path) 72 } 73 74 if err = os.Remove("/tmp/testReadSymlinkToFile"); err != nil { 75 t.Errorf("failed to remove file: %s", err) 76 } 77 78 if err = os.Remove("/tmp/fileLinkTest"); err != nil { 79 t.Errorf("failed to remove symlink: %s", err) 80 } 81 }