1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- // SPDX-License-Identifier: GPL-3.0-or-later
- #include "ebpf_unittest.h"
- ebpf_module_t test_em;
- /**
- * Initialize structure
- *
- * Initialize structure used to run unittests
- */
- void ebpf_ut_initialize_structure(netdata_run_mode_t mode)
- {
- memset(&test_em, 0, sizeof(ebpf_module_t));
- test_em.thread_name = strdupz("process");
- test_em.config_name = test_em.thread_name;
- test_em.kernels = NETDATA_V3_10 | NETDATA_V4_14 | NETDATA_V4_16 | NETDATA_V4_18 | NETDATA_V5_4 | NETDATA_V5_10 |
- NETDATA_V5_14;
- test_em.pid_map_size = ND_EBPF_DEFAULT_PID_SIZE;
- test_em.apps_level = NETDATA_APPS_LEVEL_REAL_PARENT;
- test_em.mode = mode;
- }
- /**
- * Clean UP Memory
- *
- * Clean up allocated data during unit test;
- */
- void ebpf_ut_cleanup_memory()
- {
- freez((void *)test_em.thread_name);
- }
- /**
- * Load Binary
- *
- * Test load of legacy eBPF programs.
- *
- * @return It returns 0 on success and -1 otherwise.
- */
- static int ebpf_ut_load_binary()
- {
- test_em.probe_links = ebpf_load_program(ebpf_plugin_dir, &test_em, running_on_kernel, isrh, &test_em.objects);
- if (!test_em.probe_links)
- return -1;
- ebpf_unload_legacy_code(test_em.objects, test_em.probe_links);
- return 0;
- }
- /**
- * Load Real Binary
- *
- * Load an existent binary inside plugin directory.
- *
- * @return It returns 0 on success and -1 otherwise.
- */
- int ebpf_ut_load_real_binary()
- {
- return ebpf_ut_load_binary();
- }
- /**
- * Load fake Binary
- *
- * Try to load a binary not generated by netdata.
- *
- * @return It returns 0 on success and -1 otherwise. The success for this function means we could work properly with
- * expected fails.
- */
- int ebpf_ut_load_fake_binary()
- {
- const char *original = test_em.thread_name;
- test_em.thread_name = strdupz("I_am_not_here");
- int ret = ebpf_ut_load_binary();
- ebpf_ut_cleanup_memory();
- test_em.thread_name = original;
- return !ret;
- }
|