On Wed, Jan 8, 2020 at 10:39 PM Alexei Starovoitov <ast@xxxxxxxxxx> wrote: > > test_global_func[12] - check 512 stack limit. > test_global_func[34] - check 8 frame call chain limit. > test_global_func5 - check that non-ctx pointer cannot be passed into > a function that expects context. > test_global_func6 - check that ctx pointer is unmodified. > > Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx> Acked-by: Song Liu <songliubraving@xxxxxx> > --- > .../bpf/prog_tests/test_global_funcs.c | 81 +++++++++++++++++++ > .../selftests/bpf/progs/test_global_func1.c | 45 +++++++++++ > .../selftests/bpf/progs/test_global_func2.c | 4 + > .../selftests/bpf/progs/test_global_func3.c | 65 +++++++++++++++ > .../selftests/bpf/progs/test_global_func4.c | 4 + > .../selftests/bpf/progs/test_global_func5.c | 31 +++++++ > .../selftests/bpf/progs/test_global_func6.c | 31 +++++++ > 7 files changed, 261 insertions(+) > create mode 100644 tools/testing/selftests/bpf/prog_tests/test_global_funcs.c > create mode 100644 tools/testing/selftests/bpf/progs/test_global_func1.c > create mode 100644 tools/testing/selftests/bpf/progs/test_global_func2.c > create mode 100644 tools/testing/selftests/bpf/progs/test_global_func3.c > create mode 100644 tools/testing/selftests/bpf/progs/test_global_func4.c > create mode 100644 tools/testing/selftests/bpf/progs/test_global_func5.c > create mode 100644 tools/testing/selftests/bpf/progs/test_global_func6.c > > diff --git a/tools/testing/selftests/bpf/prog_tests/test_global_funcs.c b/tools/testing/selftests/bpf/prog_tests/test_global_funcs.c > new file mode 100644 > index 000000000000..bc588fa87d65 > --- /dev/null > +++ b/tools/testing/selftests/bpf/prog_tests/test_global_funcs.c > @@ -0,0 +1,81 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* Copyright (c) 2020 Facebook */ > +#include <test_progs.h> > + > +const char *err_str; > +bool found; > + > +static int libbpf_debug_print(enum libbpf_print_level level, > + const char *format, va_list args) > +{ > + char *log_buf; > + > + if (level != LIBBPF_WARN || > + strcmp(format, "libbpf: \n%s\n")) { > + vprintf(format, args); > + return 0; > + } > + > + log_buf = va_arg(args, char *); > + if (!log_buf) > + goto out; > + if (strstr(log_buf, err_str) == 0) > + found = true; > +out: > + printf(format, log_buf); > + return 0; > +} libbpf_debug_print() looks very useful. Maybe we can move it to some header files? Thanks, Song