summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/internal/native/traceback_test.mock_tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/native/traceback_test.mock_tmpl')
-rw-r--r--vendor/github.com/bytedance/sonic/internal/native/traceback_test.mock_tmpl379
1 files changed, 379 insertions, 0 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/native/traceback_test.mock_tmpl b/vendor/github.com/bytedance/sonic/internal/native/traceback_test.mock_tmpl
new file mode 100644
index 000000000..706d2dbea
--- /dev/null
+++ b/vendor/github.com/bytedance/sonic/internal/native/traceback_test.mock_tmpl
@@ -0,0 +1,379 @@
+
+// +build !race,amd64,go1.16,!go1.24
+
+// Code generated by Makefile, DO NOT EDIT.
+
+/*
+ * Copyright 2021 ByteDance Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License );
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package {{PACKAGE}}
+
+import (
+ "unsafe"
+ "testing"
+
+ "github.com/bytedance/sonic/loader"
+)
+
+// copied from g01.20.4 signal_linux_amd64.go
+type sigctxt struct {
+ info unsafe.Pointer
+ ctxt unsafe.Pointer
+}
+
+type stackt struct {
+ ss_sp *byte
+ ss_flags int32
+ pad_cgo_0 [4]byte
+ ss_size uintptr
+}
+
+type mcontext struct {
+ gregs [23]uint64
+ fpregs unsafe.Pointer
+ __reserved1 [8]uint64
+}
+
+type sigcontext struct {
+ r8 uint64
+ r9 uint64
+ r10 uint64
+ r11 uint64
+ r12 uint64
+ r13 uint64
+ r14 uint64
+ r15 uint64
+ rdi uint64
+ rsi uint64
+ rbp uint64
+ rbx uint64
+ rdx uint64
+ rax uint64
+ rcx uint64
+ rsp uint64
+ rip uint64
+ eflags uint64
+ cs uint16
+ gs uint16
+ fs uint16
+ __pad0 uint16
+ err uint64
+ trapno uint64
+ oldmask uint64
+ cr2 uint64
+ fpstate unsafe.Pointer
+ __reserved1 [8]uint64
+}
+type ucontext struct {
+ uc_flags uint64
+ uc_link *ucontext
+ uc_stack stackt
+ uc_mcontext mcontext
+}
+
+//go:nosplit
+func (c *sigctxt) regs() *sigcontext {
+ return (*sigcontext)(unsafe.Pointer(&(*ucontext)(c.ctxt).uc_mcontext))
+}
+
+func (c *sigctxt) rsp() uint64 { return c.regs().rsp }
+
+//go:nosplit
+func (c *sigctxt) sigpc() uintptr { return uintptr(c.rip()) }
+
+//go:nosplit
+func (c *sigctxt) rip() uint64 { return c.regs().rip }
+func (c *sigctxt) sigsp() uintptr { return uintptr(c.rsp()) }
+func (c *sigctxt) siglr() uintptr { return 0 }
+
+// only used for test sonic trace
+//go:linkname testSigtrap runtime.testSigtrap
+var testSigtrap func(info unsafe.Pointer, c *sigctxt, gp unsafe.Pointer) bool
+
+func init() {
+ if testSigtrap == nil {
+ testSigtrap = sonicSigTrap
+ }
+}
+
+//go:linkname traceback1 runtime.traceback1
+func traceback1(pc, sp, lr uintptr, gp unsafe.Pointer, flags uint);
+
+func sonicSigTrap(info unsafe.Pointer, c *sigctxt, gp unsafe.Pointer) bool {
+ pc := c.sigpc()
+ sp := c.sigsp()
+ lr := c.siglr()
+ traceback1(pc, sp, lr, gp, 0);
+ return true
+}
+
+
+// =================== register mocked functions ===================
+
+var F_mock_f32toa func()
+var S_mock_f32toa uintptr
+
+//go:nosplit
+func mock_f32toa() {
+ F_mock_f32toa()
+}
+
+var F_mock_f64toa func()
+var S_mock_f64toa uintptr
+
+//go:nosplit
+func mock_f64toa() {
+ F_mock_f64toa()
+}
+
+var F_mock_get_by_path func()
+var S_mock_get_by_path uintptr
+
+//go:nosplit
+func mock_get_by_path() {
+ F_mock_get_by_path()
+}
+
+var F_mock_html_escape func()
+var S_mock_html_escape uintptr
+
+//go:nosplit
+func mock_html_escape() {
+ F_mock_html_escape()
+}
+
+var F_mock_i64toa func()
+var S_mock_i64toa uintptr
+
+//go:nosplit
+func mock_i64toa() {
+ F_mock_i64toa()
+}
+
+var F_mock_lspace func()
+var S_mock_lspace uintptr
+
+//go:nosplit
+func mock_lspace() {
+ F_mock_lspace()
+}
+
+var F_mock_quote func()
+var S_mock_quote uintptr
+
+//go:nosplit
+func mock_quote() {
+ F_mock_quote()
+}
+
+var F_mock_skip_array func()
+var S_mock_skip_array uintptr
+
+//go:nosplit
+func mock_skip_array() {
+ F_mock_skip_array()
+}
+
+var F_mock_skip_number func()
+var S_mock_skip_number uintptr
+
+//go:nosplit
+func mock_skip_number() {
+ F_mock_skip_number()
+}
+
+var F_mock_skip_one func()
+var S_mock_skip_one uintptr
+
+//go:nosplit
+func mock_skip_one() {
+ F_mock_skip_one()
+}
+
+var F_mock_skip_object func()
+var S_mock_skip_object uintptr
+
+//go:nosplit
+func mock_skip_object() {
+ F_mock_skip_object()
+}
+
+var F_mock_skip_one_fast func()
+var S_mock_skip_one_fast uintptr
+
+//go:nosplit
+func mock_skip_one_fast() {
+ F_mock_skip_one_fast()
+}
+
+var F_mock_u64toa func()
+var S_mock_u64toa uintptr
+
+//go:nosplit
+func mock_u64toa() {
+ F_mock_u64toa()
+}
+
+var F_mock_unquote func()
+var S_mock_unquote uintptr
+
+//go:nosplit
+func mock_unquote() {
+ F_mock_unquote()
+}
+
+var F_mock_validate_one func()
+var S_mock_validate_one uintptr
+
+//go:nosplit
+func mock_validate_one() {
+ F_mock_validate_one()
+}
+
+var F_mock_validate_utf8 func()
+var S_mock_validate_utf8 uintptr
+
+//go:nosplit
+func mock_validate_utf8() {
+ F_mock_validate_utf8()
+}
+
+var F_mock_validate_utf8_fast func()
+var S_mock_validate_utf8_fast uintptr
+
+//go:nosplit
+func mock_validate_utf8_fast() {
+ F_mock_validate_utf8_fast()
+}
+
+var F_mock_vnumber func()
+var S_mock_vnumber uintptr
+
+//go:nosplit
+func mock_vnumber() {
+ F_mock_vnumber()
+}
+
+var F_mock_vsigned func()
+var S_mock_vsigned uintptr
+
+//go:nosplit
+func mock_vsigned() {
+ F_mock_vsigned()
+}
+
+var F_mock_vunsigned func()
+var S_mock_vunsigned uintptr
+
+//go:nosplit
+func mock_vunsigned() {
+ F_mock_vunsigned()
+}
+
+var F_mock_vstring func()
+var S_mock_vstring uintptr
+
+//go:nosplit
+func mock_vstring() {
+ F_mock_vstring()
+}
+
+var F_mock_value func()
+var S_mock_value uintptr
+
+//go:nosplit
+func mock_value() {
+ F_mock_value()
+}
+
+var F_mock_parse_with_padding func()
+var S_mock_parse_with_padding uintptr
+
+//go:nosplit
+func mock_parse_with_padding() {
+ F_mock_parse_with_padding()
+}
+
+var F_mock_lookup_small_key func()
+var S_mock_lookup_small_key uintptr
+
+//go:nosplit
+func mock_lookup_small_key() {
+ F_mock_lookup_small_key()
+}
+
+func init() {
+ Mock()
+}
+
+func Mock() {
+ loader.WrapGoC(_mock_text_f64toa, _cfunc_f64toa, []loader.GoC{{"_f64toa", &S_mock_f64toa, &F_mock_f64toa}}, "{{PACKAGE}}", "{{PACKAGE}}/f64toa.c")
+ loader.WrapGoC(_mock_text_f32toa, _cfunc_f32toa, []loader.GoC{{"_f32toa", &S_mock_f32toa, &F_mock_f32toa}}, "{{PACKAGE}}", "{{PACKAGE}}/f32toa.c")
+ loader.WrapGoC(_mock_text_get_by_path, _cfunc_get_by_path, []loader.GoC{{"_get_by_path", &S_mock_get_by_path, &F_mock_get_by_path}}, "{{PACKAGE}}", "{{PACKAGE}}/get_by_path.c")
+ loader.WrapGoC(_mock_text_html_escape, _cfunc_html_escape, []loader.GoC{{"_html_escape", &S_mock_html_escape, &F_mock_html_escape}}, "{{PACKAGE}}", "{{PACKAGE}}/html_escape.c")
+ loader.WrapGoC(_mock_text_i64toa, _cfunc_i64toa, []loader.GoC{{"_i64toa", &S_mock_i64toa, &F_mock_i64toa}}, "{{PACKAGE}}", "{{PACKAGE}}/i64toa.c")
+ loader.WrapGoC(_mock_text_lspace, _cfunc_lspace, []loader.GoC{{"_lspace", &S_mock_lspace, &F_mock_lspace}}, "{{PACKAGE}}", "{{PACKAGE}}/lspace.c")
+ loader.WrapGoC(_mock_text_quote, _cfunc_quote, []loader.GoC{{"_quote", &S_mock_quote, &F_mock_quote}}, "{{PACKAGE}}", "{{PACKAGE}}/quote.c")
+ loader.WrapGoC(_mock_text_skip_array, _cfunc_skip_array, []loader.GoC{{"_skip_array", &S_mock_skip_array, &F_mock_skip_array}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_array.c")
+ loader.WrapGoC(_mock_text_skip_number, _cfunc_skip_number, []loader.GoC{{"_skip_number", &S_mock_skip_number, &F_mock_skip_number}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_number.c")
+ loader.WrapGoC(_mock_text_skip_one, _cfunc_skip_one, []loader.GoC{{"_skip_one", &S_mock_skip_one, &F_mock_skip_one}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_one.c")
+ loader.WrapGoC(_mock_text_skip_object, _cfunc_skip_object, []loader.GoC{{"_skip_object", &S_mock_skip_object, &F_mock_skip_object}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_object.c")
+ loader.WrapGoC(_mock_text_skip_one_fast, _cfunc_skip_one_fast, []loader.GoC{{"_skip_one_fast", &S_mock_skip_one_fast, &F_mock_skip_one_fast}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_one_fast.c")
+ loader.WrapGoC(_mock_text_u64toa, _cfunc_u64toa, []loader.GoC{{"_u64toa", &S_mock_u64toa, &F_mock_u64toa}}, "{{PACKAGE}}", "{{PACKAGE}}/u64toa.c")
+ loader.WrapGoC(_mock_text_unquote, _cfunc_unquote, []loader.GoC{{"_unquote", &S_mock_unquote, &F_mock_unquote}}, "{{PACKAGE}}", "{{PACKAGE}}/unquote.c")
+ loader.WrapGoC(_mock_text_validate_one, _cfunc_validate_one, []loader.GoC{{"_validate_one", &S_mock_validate_one, &F_mock_validate_one}}, "{{PACKAGE}}", "{{PACKAGE}}/validate_one.c")
+ loader.WrapGoC(_mock_text_validate_utf8, _cfunc_validate_utf8, []loader.GoC{{"_validate_utf8", &S_mock_validate_utf8, &F_mock_validate_utf8}}, "{{PACKAGE}}", "{{PACKAGE}}/validate_utf8.c")
+ loader.WrapGoC(_mock_text_validate_utf8_fast, _cfunc_validate_utf8_fast, []loader.GoC{{"_validate_utf8_fast", &S_mock_validate_utf8_fast, &F_mock_validate_utf8_fast}}, "{{PACKAGE}}", "{{PACKAGE}}/validate_utf8_fast.c")
+ loader.WrapGoC(_mock_text_vnumber, _cfunc_vnumber, []loader.GoC{{"_vnumber", &S_mock_vnumber, &F_mock_vnumber}}, "{{PACKAGE}}", "{{PACKAGE}}/vnumber.c")
+ loader.WrapGoC(_mock_text_vsigned, _cfunc_vsigned, []loader.GoC{{"_vsigned", &S_mock_vsigned, &F_mock_vsigned}}, "{{PACKAGE}}", "{{PACKAGE}}/vsigned.c")
+ loader.WrapGoC(_mock_text_vunsigned, _cfunc_vunsigned, []loader.GoC{{"_vunsigned", &S_mock_vunsigned, &F_mock_vunsigned}}, "{{PACKAGE}}", "{{PACKAGE}}/vunsigned.c")
+ loader.WrapGoC(_mock_text_vstring, _cfunc_vstring, []loader.GoC{{"_vstring", &S_mock_vstring, &F_mock_vstring}}, "{{PACKAGE}}", "{{PACKAGE}}/vstring.c")
+ loader.WrapGoC(_mock_text_value, _cfunc_value, []loader.GoC{{"_value", &S_mock_value, &F_mock_value}}, "{{PACKAGE}}", "{{PACKAGE}}/value.c")
+ loader.WrapGoC(_mock_text_parse_with_padding, _cfunc_parse_with_padding, []loader.GoC{{"_parse_with_padding", &S_mock_parse_with_padding, &F_mock_parse_with_padding}}, "{{PACKAGE}}", "{{PACKAGE}}/parse_with_padding.c")
+ loader.WrapGoC(_mock_text_lookup_small_key, _cfunc_lookup_small_key, []loader.GoC{{"_lookup_small_key", &S_mock_lookup_small_key, &F_mock_lookup_small_key}}, "{{PACKAGE}}", "{{PACKAGE}}/lookup_small_key.c")
+}
+
+func TestTraceback(t *testing.T) {
+ tests := []func() {
+ mock_lspace,
+ mock_f32toa,
+ mock_f64toa,
+ mock_html_escape,
+ mock_i64toa,
+ mock_quote,
+ mock_skip_array,
+ mock_skip_number,
+ mock_skip_one,
+ mock_get_by_path,
+ mock_skip_object,
+ mock_skip_one_fast,
+ mock_u64toa,
+ mock_unquote,
+ mock_validate_one,
+ mock_validate_utf8,
+ mock_validate_utf8_fast,
+ mock_vnumber,
+ mock_vsigned,
+ mock_vunsigned,
+ mock_vstring,
+ mock_value,
+ mock_parse_with_padding,
+ mock_lookup_small_key,
+ }
+ for _, f := range tests {
+ f()
+ }
+}