diff options
author | Denis Salopek <denis.salopek@sartura.hr> | 2021-05-11 23:00:06 +0200 |
---|---|---|
committer | Andrii Nakryiko <andrii@kernel.org> | 2021-05-24 13:30:52 -0700 |
commit | 49c299b69444d58a1d234769a13a3697841deb54 (patch) | |
tree | ef3646c661fe6ec747b8ab116283fab9b32fd7ec /tools/testing/selftests/bpf/test_lru_map.c | |
parent | bpf: Extend libbpf with bpf_map_lookup_and_delete_elem_flags (diff) | |
download | linux-dev-49c299b69444d58a1d234769a13a3697841deb54.tar.xz linux-dev-49c299b69444d58a1d234769a13a3697841deb54.zip |
selftests/bpf: Add bpf_lookup_and_delete_elem tests
Add bpf selftests and extend existing ones for a new function
bpf_lookup_and_delete_elem() for (percpu) hash and (percpu) LRU hash map
types.
In test_lru_map and test_maps we add an element, lookup_and_delete it,
then check whether it's deleted.
The newly added lookup_and_delete prog tests practically do the same
thing but additionally use a BPF program to change the value of the
element for LRU maps.
Signed-off-by: Denis Salopek <denis.salopek@sartura.hr>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/d30d3e0060c1f750e133579623cf1c60ff58f3d9.1620763117.git.denis.salopek@sartura.hr
Diffstat (limited to 'tools/testing/selftests/bpf/test_lru_map.c')
-rw-r--r-- | tools/testing/selftests/bpf/test_lru_map.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/test_lru_map.c b/tools/testing/selftests/bpf/test_lru_map.c index 6a5349f9eb14..7e9049fa3edf 100644 --- a/tools/testing/selftests/bpf/test_lru_map.c +++ b/tools/testing/selftests/bpf/test_lru_map.c @@ -231,6 +231,14 @@ static void test_lru_sanity0(int map_type, int map_flags) assert(bpf_map_lookup_elem(lru_map_fd, &key, value) == -1 && errno == ENOENT); + /* lookup elem key=1 and delete it, then check it doesn't exist */ + key = 1; + assert(!bpf_map_lookup_and_delete_elem(lru_map_fd, &key, &value)); + assert(value[0] == 1234); + + /* remove the same element from the expected map */ + assert(!bpf_map_delete_elem(expected_map_fd, &key)); + assert(map_equal(lru_map_fd, expected_map_fd)); close(expected_map_fd); |