Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.15 58 lines 1.4 kB view raw
1// SPDX-License-Identifier: GPL-2.0 2/* Copyright (c) 2020, Oracle and/or its affiliates. */ 3 4#include <test_progs.h> 5 6#include "trace_printk.lskel.h" 7 8#define SEARCHMSG "testing,testing" 9 10static void trace_pipe_cb(const char *str, void *data) 11{ 12 if (strstr(str, SEARCHMSG) != NULL) 13 (*(int *)data)++; 14} 15 16void serial_test_trace_printk(void) 17{ 18 struct trace_printk_lskel__bss *bss; 19 struct trace_printk_lskel *skel; 20 int err = 0, found = 0; 21 22 skel = trace_printk_lskel__open(); 23 if (!ASSERT_OK_PTR(skel, "trace_printk__open")) 24 return; 25 26 ASSERT_EQ(skel->rodata->fmt[0], 'T', "skel->rodata->fmt[0]"); 27 skel->rodata->fmt[0] = 't'; 28 29 err = trace_printk_lskel__load(skel); 30 if (!ASSERT_OK(err, "trace_printk__load")) 31 goto cleanup; 32 33 bss = skel->bss; 34 35 err = trace_printk_lskel__attach(skel); 36 if (!ASSERT_OK(err, "trace_printk__attach")) 37 goto cleanup; 38 39 /* wait for tracepoint to trigger */ 40 usleep(1); 41 trace_printk_lskel__detach(skel); 42 43 if (!ASSERT_GT(bss->trace_printk_ran, 0, "bss->trace_printk_ran")) 44 goto cleanup; 45 46 if (!ASSERT_GT(bss->trace_printk_ret, 0, "bss->trace_printk_ret")) 47 goto cleanup; 48 49 /* verify our search string is in the trace buffer */ 50 ASSERT_OK(read_trace_pipe_iter(trace_pipe_cb, &found, 1000), 51 "read_trace_pipe_iter"); 52 53 if (!ASSERT_EQ(found, bss->trace_printk_ran, "found")) 54 goto cleanup; 55 56cleanup: 57 trace_printk_lskel__destroy(skel); 58}