|
|
@@ -453,9 +453,9 @@ func TestGetwd(t *testing.T) {
|
|
|
t.Fatalf("Open .: %s", err)
|
|
|
}
|
|
|
defer fd.Close()
|
|
|
- // These are chosen carefully not to be symlinks on a Mac
|
|
|
- // (unlike, say, /var, /etc)
|
|
|
- dirs := []string{"/", "/usr/bin"}
|
|
|
+ // Directory list for test. Do not worry if any are symlinks or do not
|
|
|
+ // exist on some common unix desktop environments. That will be checked.
|
|
|
+ dirs := []string{"/", "/usr/bin", "/etc", "/var", "/opt"}
|
|
|
switch runtime.GOOS {
|
|
|
case "android":
|
|
|
dirs = []string{"/", "/system/bin"}
|
|
|
@@ -475,6 +475,17 @@ func TestGetwd(t *testing.T) {
|
|
|
}
|
|
|
oldwd := os.Getenv("PWD")
|
|
|
for _, d := range dirs {
|
|
|
+ // Check whether d exists, is a dir and that d's path does not contain a symlink
|
|
|
+ fi, err := os.Stat(d)
|
|
|
+ if err != nil || !fi.IsDir() {
|
|
|
+ t.Logf("Test dir %s stat error (%v) or not a directory, skipping", d, err)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ check, err := filepath.EvalSymlinks(d)
|
|
|
+ if err != nil || check != d {
|
|
|
+ t.Logf("Test dir %s (%s) is symlink or other error (%v), skipping", d, check, err)
|
|
|
+ continue
|
|
|
+ }
|
|
|
err = os.Chdir(d)
|
|
|
if err != nil {
|
|
|
t.Fatalf("Chdir: %v", err)
|