On Sat, Mar 27, 2021 at 12:05 AM Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: > > On Tue, Mar 23, 2021 at 7:23 PM Florent Revest <revest@xxxxxxxxxxxx> wrote: > > > > This exercises most of the format specifiers when things go well. > > > > Signed-off-by: Florent Revest <revest@xxxxxxxxxxxx> > > --- > > Looks good. Please add a no-argument test case as well. Agreed > Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > > > .../selftests/bpf/prog_tests/snprintf.c | 65 +++++++++++++++++++ > > .../selftests/bpf/progs/test_snprintf.c | 59 +++++++++++++++++ > > 2 files changed, 124 insertions(+) > > create mode 100644 tools/testing/selftests/bpf/prog_tests/snprintf.c > > create mode 100644 tools/testing/selftests/bpf/progs/test_snprintf.c > > > > [...] > > > + > > +SEC("raw_tp/sys_enter") > > +int handler(const void *ctx) > > +{ > > + /* Convenient values to pretty-print */ > > + const __u8 ex_ipv4[] = {127, 0, 0, 1}; > > + const __u8 ex_ipv6[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}; > > + const char str1[] = "str1"; > > + const char longstr[] = "longstr"; > > + extern const void schedule __ksym; > > oh, fancy. I'd move it out of this function into global space, though, > to make it more apparent. I almost missed that it's a special one. Just schedule? Alright.