Verify that the sockmap link was not severed, and socket's entry is indeed
removed from the map when the corresponding descriptor gets closed.

Signed-off-by: Michal Luczaj <m...@rbox.co>
---
 tools/testing/selftests/bpf/prog_tests/sockmap_basic.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c 
b/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
index 
fdff0652d7ef5cdd4892af8c2c83cbf18cbf163f..248754296d972286e45d79331e95a8a6ae824590
 100644
--- a/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
+++ b/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
@@ -934,8 +934,10 @@ static void test_sockmap_same_sock(void)
 
        err = socketpair(AF_UNIX, SOCK_STREAM, 0, stream);
        ASSERT_OK(err, "socketpair(af_unix, sock_stream)");
-       if (err)
+       if (err) {
+               close(tcp);
                goto out;
+       }
 
        for (i = 0; i < 2; i++) {
                err = bpf_map_update_elem(map, &zero, &stream[0], BPF_ANY);
@@ -954,14 +956,14 @@ static void test_sockmap_same_sock(void)
                ASSERT_OK(err, "bpf_map_update_elem(tcp)");
        }
 
+       close(tcp);
        err = bpf_map_delete_elem(map, &zero);
-       ASSERT_OK(err, "bpf_map_delete_elem(entry)");
+       ASSERT_ERR(err, "bpf_map_delete_elem(entry)");
 
        close(stream[0]);
        close(stream[1]);
 out:
        close(dgram);
-       close(tcp);
        close(udp);
        test_sockmap_pass_prog__destroy(skel);
 }

-- 
2.46.2


Reply via email to