diff options
Diffstat (limited to 'src/gobang.go')
-rw-r--r-- | src/gobang.go | 67 |
1 files changed, 44 insertions, 23 deletions
diff --git a/src/gobang.go b/src/gobang.go index a35a57e..98d6e84 100644 --- a/src/gobang.go +++ b/src/gobang.go @@ -54,6 +54,9 @@ var ( emitMetric = true hostname string + testOutput io.Writer = os.Stderr + testExitFn = os.Exit + SourceInfoSkip = 3 ErrBadSQLTablePrefix = errors.New("Invalid table prefix") @@ -316,40 +319,58 @@ func showColour() bool { } func TestStart(name string) { - fmt.Fprintf(os.Stderr, "%s:\n", name) + fmt.Fprintf(testOutput, "%s:\n", name) } func Testing(message string, body func()) { if showColour() { fmt.Fprintf( - os.Stderr, + testOutput, "\033[0;33mtesting\033[0m: %s... ", message, ) body() - fmt.Fprint(os.Stderr, "\033[0;32mOK\033[0m.\n") + fmt.Fprint(testOutput, "\033[0;32mOK\033[0m.\n") } else { - fmt.Fprintf(os.Stderr, "testing: %s...", message) + fmt.Fprintf(testOutput, "testing: %s...", message) body() - fmt.Fprint(os.Stderr, " OK.\n") + fmt.Fprint(testOutput, " OK.\n") } } func terr() { if showColour() { - fmt.Fprintf(os.Stderr, "\033[0;31mERR\033[0m.\n") + fmt.Fprintf(testOutput, "\033[0;31mERR\033[0m") } else { - fmt.Fprintf(os.Stderr, "ERR.\n") + fmt.Fprintf(testOutput, "ERR") + } + + _, file, line, ok := runtime.Caller(2) + if ok { + fmt.Fprintf(testOutput, " (%s:%d)", file, line) } + + fmt.Fprintf(testOutput, ".\n") } func TAssertEqual(given any, expected any) { if !reflect.DeepEqual(given, expected) { terr() - fmt.Fprintf(os.Stderr, "given != expected\n") - fmt.Fprintf(os.Stderr, "given: %#v\n", given) - fmt.Fprintf(os.Stderr, "expected: %#v\n", expected) - os.Exit(100) + fmt.Fprintf(testOutput, "given != expected\n") + fmt.Fprintf(testOutput, "given: %#v\n", given) + fmt.Fprintf(testOutput, "expected: %#v\n", expected) + testExitFn(100) + } +} + +func TAssertEqualS(given any, expected any, message string) { + if !reflect.DeepEqual(given, expected) { + terr() + fmt.Fprintf(testOutput, "message: %s\n", message) + fmt.Fprintf(testOutput, "given != expected\n") + fmt.Fprintf(testOutput, "given: %#v\n", given) + fmt.Fprintf(testOutput, "expected: %#v\n", expected) + testExitFn(100) } } @@ -360,23 +381,23 @@ func TAssertEqualI[T any](givenarr []T, expectedarr []T) { if givenlen < expectedlen { terr() fmt.Fprintf( - os.Stderr, + testOutput, "expected has %d more elements:\n%#v\n", expectedlen - givenlen, expectedarr[givenlen:], ) - os.Exit(100) + testExitFn(100) } if givenlen > expectedlen { terr() fmt.Fprintf( - os.Stderr, + testOutput, "given has %d more elements:\n%#v\n", givenlen - expectedlen, givenarr[expectedlen:], ) - os.Exit(100) + testExitFn(100) } for i, _ := range givenarr { @@ -385,13 +406,13 @@ func TAssertEqualI[T any](givenarr []T, expectedarr []T) { if !reflect.DeepEqual(given, expected) { terr() fmt.Fprintf( - os.Stderr, + testOutput, "given != expected (i = %d)\n", i, ) - fmt.Fprintf(os.Stderr, "given: %#v\n", given) - fmt.Fprintf(os.Stderr, "expected: %#v\n", expected) - os.Exit(100) + fmt.Fprintf(testOutput, "given: %#v\n", given) + fmt.Fprintf(testOutput, "expected: %#v\n", expected) + testExitFn(100) } } } @@ -399,16 +420,16 @@ func TAssertEqualI[T any](givenarr []T, expectedarr []T) { func TErrorIf(err error) { if err != nil { terr() - fmt.Fprintf(os.Stderr, "Unexpected error: %#v\n", err) - os.Exit(100) + fmt.Fprintf(testOutput, "Unexpected error: %#v\n", err) + testExitFn(100) } } func TErrorNil(err error) { if err == nil { terr() - fmt.Fprintf(os.Stderr, "Expected error, got nil\n") - os.Exit(100) + fmt.Fprintf(testOutput, "Expected error, got nil\n") + testExitFn(100) } } |