Skip to content

Commit ce9ef59

Browse files
[SNOW-856228] Improve assert library (#947)
1 parent 99921d4 commit ce9ef59

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

assert_test.go

+20-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package gosnowflake
55
import (
66
"fmt"
77
"reflect"
8+
"runtime"
89
"strings"
910
"testing"
1011
)
@@ -35,16 +36,20 @@ func assertHasPrefixE(t *testing.T, actual string, expectedPrefix string, descri
3536

3637
func fatalOnNonEmpty(t *testing.T, errMsg string) {
3738
if errMsg != "" {
38-
t.Fatal(errMsg)
39+
t.Fatal(formatErrorMessage(errMsg))
3940
}
4041
}
4142

4243
func errorOnNonEmpty(t *testing.T, errMsg string) {
4344
if errMsg != "" {
44-
t.Error(errMsg)
45+
t.Error(formatErrorMessage(errMsg))
4546
}
4647
}
4748

49+
func formatErrorMessage(errMsg string) string {
50+
return fmt.Sprintf("%s. Thrown from %s", errMsg, thrownFrom())
51+
}
52+
4853
func validateNil(actual any, descriptions ...string) string {
4954
if isNil(actual) {
5055
return ""
@@ -96,3 +101,16 @@ func isNil(value any) bool {
96101
val := reflect.ValueOf(value)
97102
return val.Kind() == reflect.Pointer && val.IsNil()
98103
}
104+
105+
func thrownFrom() string {
106+
buf := make([]byte, 1024)
107+
size := runtime.Stack(buf, false)
108+
stack := string(buf[0:size])
109+
lines := strings.Split(stack, "\n\t")
110+
for i, line := range lines {
111+
if i > 0 && !strings.Contains(line, "assert_test.go") {
112+
return line
113+
}
114+
}
115+
return stack
116+
}

0 commit comments

Comments
 (0)