summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gobang.go67
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)
}
}