File Index
Files and directories
Sign in
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 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.