1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
15 func TestErrIsExist(t
*testing
.T
) {
16 f
, err
:= ioutil
.TempFile("", "_Go_ErrIsExist")
18 t
.Fatalf("open ErrIsExist tempfile: %s", err
)
21 defer os
.Remove(f
.Name())
23 f2
, err
:= os
.OpenFile(f
.Name(), os
.O_RDWR|os
.O_CREATE|os
.O_EXCL
, 0600)
26 t
.Fatal("Open should have failed")
29 if s
:= checkErrorPredicate("os.IsExist", os
.IsExist
, err
); s
!= "" {
35 func testErrNotExist(name
string) string {
36 f
, err
:= os
.Open(name
)
39 return "Open should have failed"
41 if s
:= checkErrorPredicate("os.IsNotExist", os
.IsNotExist
, err
); s
!= "" {
47 return "Chdir should have failed"
49 if s
:= checkErrorPredicate("os.IsNotExist", os
.IsNotExist
, err
); s
!= "" {
55 func TestErrIsNotExist(t
*testing
.T
) {
56 tmpDir
, err
:= ioutil
.TempDir("", "_Go_ErrIsNotExist")
58 t
.Fatalf("create ErrIsNotExist tempdir: %s", err
)
61 defer os
.RemoveAll(tmpDir
)
63 name
:= filepath
.Join(tmpDir
, "NotExists")
64 if s
:= testErrNotExist(name
); s
!= "" {
69 name
= filepath
.Join(name
, "NotExists2")
70 if s
:= testErrNotExist(name
); s
!= "" {
76 func checkErrorPredicate(predName
string, pred
func(error
) bool, err error
) string {
78 return fmt
.Sprintf("%s does not work as expected for %#v", predName
, err
)