1// This file is a shim for dependencies of golang_*_test.go files that are normally provided by the standard library. 2// It helps importing those files with minimal changes. 3package json 4 5import ( 6 "bytes" 7 "reflect" 8 "sync" 9 "testing" 10) 11 12// Field cache used in golang_bench_test.go 13var fieldCache = sync.Map{} 14 15func cachedTypeFields(reflect.Type) {} 16 17// Fake test env for golang_bench_test.go 18type testenvShim struct { 19} 20 21func (ts testenvShim) Builder() string { 22 return "" 23} 24 25var testenv testenvShim 26 27// Fake scanner for golang_decode_test.go 28type scanner struct { 29} 30 31func checkValid(in []byte, scan *scanner) error { 32 return nil 33} 34 35// Actual isSpace implementation 36func isSpace(c byte) bool { 37 return c == ' ' || c == '\t' || c == '\r' || c == '\n' 38} 39 40// Fake encoder for golang_encode_test.go 41type encodeState struct { 42 Buffer bytes.Buffer 43} 44 45func (es *encodeState) string(s string, escapeHTML bool) { 46} 47 48func (es *encodeState) stringBytes(b []byte, escapeHTML bool) { 49} 50 51// Fake number test 52func isValidNumber(n string) bool { 53 return true 54} 55 56func assertErrorPresence(t *testing.T, expected error, actual error, prefixes ...interface{}) { 57 if expected != nil && actual == nil { 58 errorWithPrefixes(t, prefixes, "expected error, but did not get an error") 59 } else if expected == nil && actual != nil { 60 errorWithPrefixes(t, prefixes, "did not expect error but got %v", actual) 61 } 62} 63 64func errorWithPrefixes(t *testing.T, prefixes []interface{}, format string, elements ...interface{}) { 65 fullFormat := format 66 allElements := append(prefixes, elements...) 67 68 for range prefixes { 69 fullFormat = "%v: " + fullFormat 70 } 71 t.Errorf(fullFormat, allElements...) 72} 73