0001
0002
0003
0004 #include <test_progs.h>
0005 #include <time.h>
0006 #include "test_autoload.skel.h"
0007
0008 void test_autoload(void)
0009 {
0010 int duration = 0, err;
0011 struct test_autoload* skel;
0012
0013 skel = test_autoload__open_and_load();
0014
0015 if (CHECK(skel, "skel_open_and_load", "unexpected success\n"))
0016 goto cleanup;
0017
0018 skel = test_autoload__open();
0019 if (CHECK(!skel, "skel_open", "failed to open skeleton\n"))
0020 goto cleanup;
0021
0022
0023 bpf_program__set_autoload(skel->progs.prog3, false);
0024
0025 err = test_autoload__load(skel);
0026 if (CHECK(err, "skel_load", "failed to load skeleton: %d\n", err))
0027 goto cleanup;
0028
0029 err = test_autoload__attach(skel);
0030 if (CHECK(err, "skel_attach", "skeleton attach failed: %d\n", err))
0031 goto cleanup;
0032
0033 usleep(1);
0034
0035 CHECK(!skel->bss->prog1_called, "prog1", "not called\n");
0036 CHECK(!skel->bss->prog2_called, "prog2", "not called\n");
0037 CHECK(skel->bss->prog3_called, "prog3", "called?!\n");
0038
0039 cleanup:
0040 test_autoload__destroy(skel);
0041 }