mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07: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:
committed by
Thomas Gleixner
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user