aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/test/buffer_writer.go4
-rw-r--r--lib/test/test.go42
-rw-r--r--lib/test/writer.go1
3 files changed, 8 insertions, 39 deletions
diff --git a/lib/test/buffer_writer.go b/lib/test/buffer_writer.go
index 676582f8..c9e3790b 100644
--- a/lib/test/buffer_writer.go
+++ b/lib/test/buffer_writer.go
@@ -36,6 +36,10 @@ func (bw *BufferWriter) Fatalf(format string, args ...any) {
fmt.Fprintf(bw, format, args...)
}
+func (bw *BufferWriter) Helper() {
+ // NOOP
+}
+
// Log write the arguments into buffer.
func (bw *BufferWriter) Log(args ...any) {
fmt.Fprint(bw, args...)
diff --git a/lib/test/test.go b/lib/test/test.go
index 07f9bc20..5a85f58a 100644
--- a/lib/test/test.go
+++ b/lib/test/test.go
@@ -8,42 +8,12 @@ package test
import (
"bytes"
"fmt"
- "runtime"
"git.sr.ht/~shulhan/pakakeh.go/lib/reflect"
"git.sr.ht/~shulhan/pakakeh.go/lib/text"
"git.sr.ht/~shulhan/pakakeh.go/lib/text/diff"
)
-func printStackTrace(w Writer, trace []byte) {
- var (
- lines int
- start int
- end int
- x int
- b byte
- ok bool
- )
-
- for x, b = range trace {
- if b == '\n' {
- lines++
- if lines == 3 {
- start = x + 1
- }
- if lines == 5 {
- end = x + 1
- break
- }
- }
- }
-
- _, ok = w.(*BufferWriter)
- if !ok {
- w.Log("\n!!! ERR " + string(trace[start:end]))
- }
-}
-
// Assert compare two interfaces: exp and got for equality.
// If both parameters are not equal, the function will call print and try to
// describe the position (type and value) where value are not matched and call
@@ -87,12 +57,10 @@ func printStackTrace(w Writer, trace []byte) {
// LIMITATION: this method does not support recursive pointer, for example a
// node that point to parent and parent that point back to node again.
func Assert(w Writer, name string, exp, got interface{}) {
- var (
- logp = `Assert`
+ w.Helper()
- err error
- trace []byte
- )
+ var logp = `Assert`
+ var err error
err = reflect.DoEqual(exp, got)
if err == nil {
@@ -103,10 +71,6 @@ func Assert(w Writer, name string, exp, got interface{}) {
return
}
- trace = make([]byte, 1024)
- runtime.Stack(trace, false)
- printStackTrace(w, trace)
-
if len(name) == 0 {
w.Fatalf(`!!! %s: %s`, logp, err)
} else {
diff --git a/lib/test/writer.go b/lib/test/writer.go
index 19dddb97..3d6471d5 100644
--- a/lib/test/writer.go
+++ b/lib/test/writer.go
@@ -11,6 +11,7 @@ type Writer interface {
Errorf(format string, args ...any)
Fatal(args ...any)
Fatalf(format string, args ...any)
+ Helper()
Log(args ...any)
Logf(format string, args ...any)
}