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  }