1*baeead21SHengqi Chen /* SPDX-License-Identifier: GPL-2.0 */
2*baeead21SHengqi Chen /* Copyright (c) 2021 Hengqi Chen */
3*baeead21SHengqi Chen 
4*baeead21SHengqi Chen #include <test_progs.h>
5*baeead21SHengqi Chen #include "test_prog_array_init.skel.h"
6*baeead21SHengqi Chen 
test_prog_array_init(void)7*baeead21SHengqi Chen void test_prog_array_init(void)
8*baeead21SHengqi Chen {
9*baeead21SHengqi Chen 	struct test_prog_array_init *skel;
10*baeead21SHengqi Chen 	int err;
11*baeead21SHengqi Chen 
12*baeead21SHengqi Chen 	skel = test_prog_array_init__open();
13*baeead21SHengqi Chen 	if (!ASSERT_OK_PTR(skel, "could not open BPF object"))
14*baeead21SHengqi Chen 		return;
15*baeead21SHengqi Chen 
16*baeead21SHengqi Chen 	skel->rodata->my_pid = getpid();
17*baeead21SHengqi Chen 
18*baeead21SHengqi Chen 	err = test_prog_array_init__load(skel);
19*baeead21SHengqi Chen 	if (!ASSERT_OK(err, "could not load BPF object"))
20*baeead21SHengqi Chen 		goto cleanup;
21*baeead21SHengqi Chen 
22*baeead21SHengqi Chen 	skel->links.entry = bpf_program__attach_raw_tracepoint(skel->progs.entry, "sys_enter");
23*baeead21SHengqi Chen 	if (!ASSERT_OK_PTR(skel->links.entry, "could not attach BPF program"))
24*baeead21SHengqi Chen 		goto cleanup;
25*baeead21SHengqi Chen 
26*baeead21SHengqi Chen 	usleep(1);
27*baeead21SHengqi Chen 
28*baeead21SHengqi Chen 	ASSERT_EQ(skel->bss->value, 42, "unexpected value");
29*baeead21SHengqi Chen 
30*baeead21SHengqi Chen cleanup:
31*baeead21SHengqi Chen 	test_prog_array_init__destroy(skel);
32*baeead21SHengqi Chen }
33