mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
selftests/ipc: Fix test failure seen after initial test run
[ Upstream commitb87080eab4] After successfully running the IPC msgque test once, subsequent runs result in a test failure: $ sudo ./run_kselftest.sh TAP version 13 1..1 # selftests: ipc: msgque # Failed to get stats for IPC queue with id 0 # Failed to dump queue: -22 # Bail out! # # Pass 0 Fail 0 Xfail 0 Xpass 0 Skip 0 Error 0 not ok 1 selftests: ipc: msgque # exit=1 The dump_queue() function loops through the possible message queue index values using calls to msgctl(kern_id, MSG_STAT, ...) where kern_id represents the index value. The first time the test is ran, the initial index value of 0 is valid and the test is able to complete. The index value of 0 is not valid in subsequent test runs and the loop attempts to try index values of 1, 2, 3, and so on until a valid index value is found that corresponds to the message queue created earlier in the test. The msgctl() syscall returns -1 and sets errno to EINVAL when invalid index values are used. The test failure is caused by incorrectly comparing errno to -EINVAL when cycling through possible index values. Fix invalid test failures on subsequent runs of the msgque test by correctly comparing errno values to a non-negated EINVAL. Fixes:3a665531a3("selftests: IPC message queue copy feature test") Signed-off-by: Tyler Hicks <tyhicks@linux.microsoft.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a5dec15686
commit
3ea62d4961
@@ -137,7 +137,7 @@ int dump_queue(struct msgque_data *msgque)
|
|||||||
for (kern_id = 0; kern_id < 256; kern_id++) {
|
for (kern_id = 0; kern_id < 256; kern_id++) {
|
||||||
ret = msgctl(kern_id, MSG_STAT, &ds);
|
ret = msgctl(kern_id, MSG_STAT, &ds);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
if (errno == -EINVAL)
|
if (errno == EINVAL)
|
||||||
continue;
|
continue;
|
||||||
printf("Failed to get stats for IPC queue with id %d\n",
|
printf("Failed to get stats for IPC queue with id %d\n",
|
||||||
kern_id);
|
kern_id);
|
||||||
|
|||||||
Reference in New Issue
Block a user