mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 17:42:03 +02:00
selftests/futex: Correct validation logic in waitv
In futex_waitv negative tests (invalid_flag, unaligned_address, etc.), test results are evaluated as: if (res == EINVAL) Since sys_futex_waitv returns -1 on error and sets errno, direct positive comparisons against res are always false, causing tests to silently pass regardless of real errors. Correct these validations to assert EXPECT_EQ(res, -1) and compare errno directly against expected constants. [ tglx: Fixup coding style ] Signed-off-by: Wake Liu <wakel@google.com> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Link: https://patch.msgid.link/20260526010635.23980-3-wakel@google.com
This commit is contained in:
parent
e531301dd8
commit
a894f6f403
|
|
@ -134,11 +134,12 @@ TEST(invalid_flag)
|
|||
to.tv_sec++;
|
||||
|
||||
res = futex_waitv(waitv, NR_FUTEXES, 0, &to, CLOCK_MONOTONIC);
|
||||
if (res == EINVAL) {
|
||||
EXPECT_TRUE(0) {
|
||||
TH_LOG("futex_waitv private returned: %d %s",
|
||||
res ? errno : res, res ? strerror(errno) : "");
|
||||
}
|
||||
|
||||
EXPECT_EQ(res, -1)
|
||||
TH_LOG("futex_waitv returned unexpected result: %d", res);
|
||||
if (res == -1) {
|
||||
EXPECT_EQ(errno, EINVAL)
|
||||
TH_LOG("futex_waitv returned unexpected errno: %d", errno);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -160,11 +161,12 @@ TEST(unaligned_address)
|
|||
to.tv_sec++;
|
||||
|
||||
res = futex_waitv(waitv, NR_FUTEXES, 0, &to, CLOCK_MONOTONIC);
|
||||
if (res == EINVAL) {
|
||||
EXPECT_TRUE(0) {
|
||||
TH_LOG("futex_wake private returned: %d %s",
|
||||
res ? errno : res, res ? strerror(errno) : "");
|
||||
}
|
||||
|
||||
EXPECT_EQ(res, -1)
|
||||
TH_LOG("futex_waitv returned unexpected result: %d", res);
|
||||
if (res == -1) {
|
||||
EXPECT_EQ(errno, EINVAL)
|
||||
TH_LOG("futex_waitv returned unexpected errno: %d", errno);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -185,11 +187,12 @@ TEST(null_address)
|
|||
to.tv_sec++;
|
||||
|
||||
res = futex_waitv(waitv, NR_FUTEXES, 0, &to, CLOCK_MONOTONIC);
|
||||
if (res == EINVAL) {
|
||||
EXPECT_TRUE(0) {
|
||||
TH_LOG("futex_waitv private returned: %d %s",
|
||||
res ? errno : res, res ? strerror(errno) : "");
|
||||
}
|
||||
|
||||
EXPECT_EQ(res, -1)
|
||||
TH_LOG("futex_waitv returned unexpected result: %d", res);
|
||||
if (res == -1) {
|
||||
EXPECT_EQ(errno, EINVAL)
|
||||
TH_LOG("futex_waitv returned unexpected errno: %d", errno);
|
||||
}
|
||||
|
||||
/* Testing a NULL address for *waiters */
|
||||
|
|
@ -199,11 +202,12 @@ TEST(null_address)
|
|||
to.tv_sec++;
|
||||
|
||||
res = futex_waitv(NULL, NR_FUTEXES, 0, &to, CLOCK_MONOTONIC);
|
||||
if (res == EINVAL) {
|
||||
EXPECT_TRUE(0) {
|
||||
TH_LOG("futex_waitv private returned: %d %s",
|
||||
res ? errno : res, res ? strerror(errno) : "");
|
||||
}
|
||||
|
||||
EXPECT_EQ(res, -1)
|
||||
TH_LOG("futex_waitv returned unexpected result: %d", res);
|
||||
if (res == -1) {
|
||||
EXPECT_EQ(errno, EINVAL)
|
||||
TH_LOG("futex_waitv returned unexpected errno: %d", errno);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -222,11 +226,12 @@ TEST(invalid_clockid)
|
|||
to.tv_sec++;
|
||||
|
||||
res = futex_waitv(NULL, NR_FUTEXES, 0, &to, CLOCK_TAI);
|
||||
if (res == EINVAL) {
|
||||
EXPECT_TRUE(0) {
|
||||
TH_LOG("futex_waitv private returned: %d %s",
|
||||
res ? errno : res, res ? strerror(errno) : "");
|
||||
}
|
||||
|
||||
EXPECT_EQ(res, -1)
|
||||
TH_LOG("futex_waitv returned unexpected result: %d", res);
|
||||
if (res == -1) {
|
||||
EXPECT_EQ(errno, EINVAL)
|
||||
TH_LOG("futex_waitv returned unexpected errno: %d", errno);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user