126b367e3SAlexei Starovoitov // SPDX-License-Identifier: GPL-2.0 226b367e3SAlexei Starovoitov /* Copyright (c) 2021 Facebook */ 326b367e3SAlexei Starovoitov 426b367e3SAlexei Starovoitov #include "test_progs.h" 526b367e3SAlexei Starovoitov #include "core_kern.lskel.h" 626b367e3SAlexei Starovoitov test_core_kern_lskel(void)726b367e3SAlexei Starovoitovvoid test_core_kern_lskel(void) 826b367e3SAlexei Starovoitov { 926b367e3SAlexei Starovoitov struct core_kern_lskel *skel; 10*976a38e0SMatteo Croce int link_fd; 1126b367e3SAlexei Starovoitov 1226b367e3SAlexei Starovoitov skel = core_kern_lskel__open_and_load(); 13*976a38e0SMatteo Croce if (!ASSERT_OK_PTR(skel, "open_and_load")) 14*976a38e0SMatteo Croce return; 15*976a38e0SMatteo Croce 16*976a38e0SMatteo Croce link_fd = core_kern_lskel__core_relo_proto__attach(skel); 17*976a38e0SMatteo Croce if (!ASSERT_GT(link_fd, 0, "attach(core_relo_proto)")) 18*976a38e0SMatteo Croce goto cleanup; 19*976a38e0SMatteo Croce 20*976a38e0SMatteo Croce /* trigger tracepoints */ 21*976a38e0SMatteo Croce usleep(1); 22*976a38e0SMatteo Croce ASSERT_TRUE(skel->bss->proto_out[0], "bpf_core_type_exists"); 23*976a38e0SMatteo Croce ASSERT_FALSE(skel->bss->proto_out[1], "!bpf_core_type_exists"); 24*976a38e0SMatteo Croce ASSERT_TRUE(skel->bss->proto_out[2], "bpf_core_type_exists. nested"); 25*976a38e0SMatteo Croce 26*976a38e0SMatteo Croce cleanup: 2726b367e3SAlexei Starovoitov core_kern_lskel__destroy(skel); 2826b367e3SAlexei Starovoitov } 29