| // SPDX-License-Identifier: GPL-2.0 |
| |
| #include <test_progs.h> |
| #include "test_hash_large_key.skel.h" |
| |
| void test_hash_large_key(void) |
| { |
| int err, value = 21, duration = 0, hash_map_fd; |
| struct test_hash_large_key *skel; |
| |
| struct bigelement { |
| int a; |
| char b[4096]; |
| long long c; |
| } key; |
| bzero(&key, sizeof(key)); |
| |
| skel = test_hash_large_key__open_and_load(); |
| if (CHECK(!skel, "skel_open_and_load", "skeleton open/load failed\n")) |
| return; |
| |
| hash_map_fd = bpf_map__fd(skel->maps.hash_map); |
| if (CHECK(hash_map_fd < 0, "bpf_map__fd", "failed\n")) |
| goto cleanup; |
| |
| err = test_hash_large_key__attach(skel); |
| if (CHECK(err, "attach_raw_tp", "err %d\n", err)) |
| goto cleanup; |
| |
| err = bpf_map_update_elem(hash_map_fd, &key, &value, BPF_ANY); |
| if (CHECK(err, "bpf_map_update_elem", "errno=%d\n", errno)) |
| goto cleanup; |
| |
| key.c = 1; |
| err = bpf_map_lookup_elem(hash_map_fd, &key, &value); |
| if (CHECK(err, "bpf_map_lookup_elem", "errno=%d\n", errno)) |
| goto cleanup; |
| |
| CHECK_FAIL(value != 42); |
| |
| cleanup: |
| test_hash_large_key__destroy(skel); |
| } |