diff options
| author | Eduard Zingerman <[email protected]> | 2024-03-06 10:45:19 +0000 |
|---|---|---|
| committer | Andrii Nakryiko <[email protected]> | 2024-03-06 23:18:15 +0000 |
| commit | c8617e8bcf8d1ef357fadf5c96bd86b9952fb93f (patch) | |
| tree | 98d73393511d70d2f7712f98ae0ace043330d0bc /tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.h | |
| parent | selftests/bpf: Test struct_ops map definition with type suffix (diff) | |
| download | kernel-c8617e8bcf8d1ef357fadf5c96bd86b9952fb93f.tar.gz kernel-c8617e8bcf8d1ef357fadf5c96bd86b9952fb93f.zip | |
selftests/bpf: Utility functions to capture libbpf log in test_progs
Several test_progs tests already capture libbpf log in order to check
for some expected output, e.g bpf_tcp_ca.c, kfunc_dynptr_param.c,
log_buf.c and a few others.
This commit provides a, hopefully, simple API to capture libbpf log
w/o necessity to define new print callback in each test:
/* Creates a global memstream capturing INFO and WARN level output
* passed to libbpf_print_fn.
* Returns 0 on success, negative value on failure.
* On failure the description is printed using PRINT_FAIL and
* current test case is marked as fail.
*/
int start_libbpf_log_capture(void)
/* Destroys global memstream created by start_libbpf_log_capture().
* Returns a pointer to captured data which has to be freed.
* Returned buffer is null terminated.
*/
char *stop_libbpf_log_capture(void)
The intended usage is as follows:
if (start_libbpf_log_capture())
return;
use_libbpf();
char *log = stop_libbpf_log_capture();
ASSERT_HAS_SUBSTR(log, "... expected ...", "expected some message");
free(log);
As a safety measure, free(start_libbpf_log_capture()) is invoked in the
epilogue of the test_progs.c:run_one_test().
Signed-off-by: Eduard Zingerman <[email protected]>
Signed-off-by: Andrii Nakryiko <[email protected]>
Link: https://lore.kernel.org/bpf/[email protected]
Diffstat (limited to 'tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.h')
0 files changed, 0 insertions, 0 deletions
