}
}
-func testErrNotExist(name string) string {
+func testErrNotExist(t *testing.T, name string) string {
+ originalWD, err := os.Getwd()
+ if err != nil {
+ t.Fatal(err)
+ }
+
f, err := os.Open(name)
if err == nil {
f.Close()
err = os.Chdir(name)
if err == nil {
- return "Chdir should have failed"
+ if err := os.Chdir(originalWD); err != nil {
+ t.Fatalf("Chdir should have failed, failed to restore original working directory: %v", err)
+ }
+ return "Chdir should have failed, restored original working directory"
}
if s := checkErrorPredicate("os.IsNotExist", os.IsNotExist, err, fs.ErrNotExist); s != "" {
return s
func TestErrIsNotExist(t *testing.T) {
tmpDir := t.TempDir()
name := filepath.Join(tmpDir, "NotExists")
- if s := testErrNotExist(name); s != "" {
+ if s := testErrNotExist(t, name); s != "" {
t.Fatal(s)
return
}
name = filepath.Join(name, "NotExists2")
- if s := testErrNotExist(name); s != "" {
+ if s := testErrNotExist(t, name); s != "" {
t.Fatal(s)
return
}