FILE
cgroup_get_current_cgroup_id.c
File preview with syntax highlighting.
linux-6.19.14/tools/testing/selftests/bpf/prog_tests/cgroup_get_current_cgroup_id.c
1// SPDX-License-Identifier: GPL-2.0 2 3#include <sys/stat.h> 4#include <sys/sysmacros.h> 5#include "test_progs.h" 6#include "cgroup_helpers.h" 7#include "get_cgroup_id_kern.skel.h" 8 9#define TEST_CGROUP "/test-bpf-get-cgroup-id/" 10 11void test_cgroup_get_current_cgroup_id(void) 12{ 13 struct get_cgroup_id_kern *skel; 14 const struct timespec req = { 15 .tv_sec = 0, 16 .tv_nsec = 1, 17 }; 18 int cgroup_fd; 19 __u64 ucgid; 20 21 cgroup_fd = cgroup_setup_and_join(TEST_CGROUP); 22 if (!ASSERT_OK_FD(cgroup_fd, "cgroup switch")) 23 return; 24 25 skel = get_cgroup_id_kern__open_and_load(); 26 if (!ASSERT_OK_PTR(skel, "load program")) 27 goto cleanup_cgroup; 28 29 if (!ASSERT_OK(get_cgroup_id_kern__attach(skel), "attach bpf program")) 30 goto cleanup_progs; 31 32 skel->bss->expected_pid = getpid(); 33 /* trigger the syscall on which is attached the tested prog */ 34 if (!ASSERT_OK(syscall(__NR_nanosleep, &req, NULL), "nanosleep")) 35 goto cleanup_progs; 36 37 ucgid = get_cgroup_id(TEST_CGROUP); 38 39 ASSERT_EQ(skel->bss->cg_id, ucgid, "compare cgroup ids"); 40 41cleanup_progs: 42 get_cgroup_id_kern__destroy(skel); 43cleanup_cgroup: 44 close(cgroup_fd); 45 cleanup_cgroup_environment(); 46}
~/
Read-only file preview.