github.com/StackExchange/blackbox/v2@v2.0.1-0.20220331193400-d84e904973ab/integrationTest/asserts.go (about) 1 package main 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 8 "github.com/andreyvit/diff" 9 ) 10 11 func assertFileMissing(t *testing.T, name string) { 12 t.Helper() 13 _, err := os.Stat(name) 14 if err != nil && os.IsNotExist(err) { 15 return 16 } 17 if err == nil { 18 t.Fatalf("assertFileMissing failed: %v exists", name) 19 } 20 t.Fatalf("assertFileMissing: %q: %v", name, err) 21 } 22 23 func assertFileExists(t *testing.T, name string) { 24 t.Helper() 25 _, err := os.Stat(name) 26 if err == nil { 27 return 28 } 29 if os.IsNotExist(err) { 30 t.Fatalf("assertFileExists failed: %v not exist", name) 31 } 32 t.Fatalf("assertFileExists: file can't be accessed: %v: %v", name, err) 33 } 34 35 func assertFileEmpty(t *testing.T, name string) { 36 t.Helper() 37 c, err := ioutil.ReadFile(name) 38 if err != nil { 39 t.Fatal(err) 40 } 41 if len(c) != 0 { 42 t.Fatalf("got=%v want=%v: %v", len(c), 0, name) 43 } 44 } 45 46 func assertFileContents(t *testing.T, name string, contents string) { 47 t.Helper() 48 c, err := ioutil.ReadFile(name) 49 if err != nil { 50 t.Fatal(err) 51 } 52 53 if w, g := contents, string(c); w != g { 54 t.Errorf("assertFileContents(%q) mismatch (-got +want):\n%s", 55 name, diff.LineDiff(g, w)) 56 } 57 } 58 59 func assertFilePerms(t *testing.T, name string, perms os.FileMode) { 60 t.Helper() 61 s, err := os.Stat(name) 62 if err != nil { 63 t.Fatal(err) 64 } 65 if s.Mode() != perms { 66 t.Fatalf("got=%#o want=%#o: %v", s.Mode(), perms, name) 67 } 68 }