diff options
Diffstat (limited to 'integrationtests/fileutils.go')
| -rw-r--r-- | integrationtests/fileutils.go | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/integrationtests/fileutils.go b/integrationtests/fileutils.go index a1e1051..064a08a 100644 --- a/integrationtests/fileutils.go +++ b/integrationtests/fileutils.go @@ -2,6 +2,7 @@ package integrationtests import ( "bufio" + "context" "crypto/sha256" "encoding/base64" "fmt" @@ -81,7 +82,7 @@ func compareFiles(t *testing.T, fileA, fileB string) error { if bytes, err := exec.Command("diff", "-u", fileA, fileB).Output(); err != nil { sb.Write(bytes) } - return fmt.Errorf(sb.String()) + return fmt.Errorf("%s", sb.String()) } return nil @@ -115,3 +116,27 @@ func shaOfFile(t *testing.T, file string) string { t.Log("SHA", file, sha) return sha } + +// compareFilesWithContext is a context-aware version of compareFiles that logs comparisons +func compareFilesWithContext(ctx context.Context, t *testing.T, fileA, fileB string) error { + if logger := GetTestLogger(ctx); logger != nil { + logger.LogFileComparison(fileA, fileB, "exact (SHA256)") + } + return compareFiles(t, fileA, fileB) +} + +// compareFilesContentsWithContext is a context-aware version of compareFilesContents that logs comparisons +func compareFilesContentsWithContext(ctx context.Context, t *testing.T, fileA, fileB string) error { + if logger := GetTestLogger(ctx); logger != nil { + logger.LogFileComparison(fileA, fileB, "contents (order-independent)") + } + return compareFilesContents(t, fileA, fileB) +} + +// fileContainsStrWithContext is a context-aware version of fileContainsStr that logs comparisons +func fileContainsStrWithContext(ctx context.Context, t *testing.T, file, str string) error { + if logger := GetTestLogger(ctx); logger != nil { + logger.LogFileComparison(file, fmt.Sprintf("string '%s'", str), "contains check") + } + return fileContainsStr(t, file, str) +} |
