selftests: Fix the if conditions of in test_extra_filter()
authorWang Yufen <wangyufen@huawei.com>
Fri, 23 Sep 2022 07:02:37 +0000 (15:02 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Oct 2022 08:39:43 +0000 (10:39 +0200)
[ Upstream commit bc7a319844891746135dc1f34ab9df78d636a3ac ]

The socket 2 bind the addr in use, bind should fail with EADDRINUSE. So
if bind success or errno != EADDRINUSE, testcase should be failed.

Fixes: 3ca8e4029969 ("soreuseport: BPF selection functional test")
Signed-off-by: Wang Yufen <wangyufen@huawei.com>
Link: https://lore.kernel.org/r/1663916557-10730-1-git-send-email-wangyufen@huawei.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/net/reuseport_bpf.c

index b5277106df1fd156b5e7c0b30b55952c369b6bd1..b0cc082fbb84fa7648fe760df6a2574fcf142262 100644 (file)
@@ -330,7 +330,7 @@ static void test_extra_filter(const struct test_params p)
        if (bind(fd1, addr, sockaddr_size()))
                error(1, errno, "failed to bind recv socket 1");
 
-       if (!bind(fd2, addr, sockaddr_size()) && errno != EADDRINUSE)
+       if (!bind(fd2, addr, sockaddr_size()) || errno != EADDRINUSE)
                error(1, errno, "bind socket 2 should fail with EADDRINUSE");
 
        free(addr);