Skip to contentSkip to conversation

selftests: ipc: Updates the msgque test to use kselftest framework

PATCH In review Atul Kumar Pant 2 participants 3 messages Jul 23, 2023 – Aug 17, 2023 Kselftest

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 selftests: ipc: Updates the msgque test to use kselftest framework

Updates the msgque test to print the pass or fail status after the completion of the test.

---
 tools/testing/selftests/ipc/msgque.c | 5 +++++
 1 file changed, 5 insertions(+)
tools/testing/selftests/ipc/msgque.c +5 -0
index 656c43c24044..513b1265bb75 100644
@@ -9,6 +9,7 @@
 
 #include "../kselftest.h"
 
+#define NUM_TEST_CASES		1
 #define MAX_MSG_SIZE		32
 
 struct msg1 {
@@ -197,6 +198,7 @@ int main(int argc, char **argv)
 	int msg, pid, err;
 	struct msgque_data msgque;
 
+	ksft_set_plan(NUM_TEST_CASES);
 	if (getuid() != 0)
 		return ksft_exit_skip(
 				"Please run the test as root - Exiting.\n");
@@ -243,13 +245,16 @@ int main(int argc, char **argv)
 		printf("Failed to test queue: %d\n", err);
 		goto err_out;
 	}
+	ksft_test_result_pass("# Test Passed\n");
 	return ksft_exit_pass();
 
 err_destroy:
 	if (msgctl(msgque.msq_id, IPC_RMID, NULL)) {
 		printf("Failed to destroy queue: %d\n", -errno);
+		ksft_test_result_fail("# Test Failed\n");
 		return ksft_exit_fail();
 	}
 err_out:
+	ksft_test_result_fail("# Test Failed\n");
 	return ksft_exit_fail();
 }
Signature · 1 line
2.25.1
maintainer
#1 lore raw
Quoted 35 lines · Atul Kumar Pant

Updates the msgque test to print the pass or fail status after the completion of the test.

---
  tools/testing/selftests/ipc/msgque.c | 5 +++++
  1 file changed, 5 insertions(+)
tools/testing/selftests/ipc/msgque.c +3 -0
index 656c43c24044..513b1265bb75 100644
@@ -9,6 +9,7 @@
 
  #include "../kselftest.h"
 
+#define NUM_TEST_CASES		1
  #define MAX_MSG_SIZE		32
 
  struct msg1 {
@@ -197,6 +198,7 @@ int main(int argc, char **argv)
  	int msg, pid, err;
  	struct msgque_data msgque;
 
+	ksft_set_plan(NUM_TEST_CASES);
  	if (getuid() != 0)
  		return ksft_exit_skip(
  				"Please run the test as root - Exiting.\n");
@@ -243,13 +245,16 @@ int main(int argc, char **argv)
  		printf("Failed to test queue: %d\n", err);
  		goto err_out;
  	}
+	ksft_test_result_pass("# Test Passed\n");
  	return ksft_exit_pass();
 

tools/testing/selftests/ipc/msgque.c int main(int argc, char **argv) · line 260

Quoted 10 lines
tools/testing/selftests/ipc/msgque.c +2 -0
  err_destroy:
  	if (msgctl(msgque.msq_id, IPC_RMID, NULL)) {
  		printf("Failed to destroy queue: %d\n", -errno);
+		ksft_test_result_fail("# Test Failed\n");
  		return ksft_exit_fail();
  	}
  err_out:
+	ksft_test_result_fail("# Test Failed\n");
  	return ksft_exit_fail();
  }

I am not seeing any value in adding these. It already has messages in error legs and it prints totals at the end:

# Totals: pass:0 fail:0 xfail:0 xpass:0 skip:0 error:0

thanks,
-- Shuah
_______________________________________________
Linux-kernel-mentees mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

#2 lore raw
Quoted 45 lines · Shuah Khan
Quoted 30 lines · Atul Kumar Pant

Updates the msgque test to print the pass or fail status after the completion of the test.

---
  tools/testing/selftests/ipc/msgque.c | 5 +++++
  1 file changed, 5 insertions(+)
tools/testing/selftests/ipc/msgque.c +3 -0
index 656c43c24044..513b1265bb75 100644
@@ -9,6 +9,7 @@
  #include "../kselftest.h"
+#define NUM_TEST_CASES		1
  #define MAX_MSG_SIZE		32
  struct msg1 {
@@ -197,6 +198,7 @@ int main(int argc, char **argv)
  	int msg, pid, err;
  	struct msgque_data msgque;
+	ksft_set_plan(NUM_TEST_CASES);
  	if (getuid() != 0)
  		return ksft_exit_skip(
  				"Please run the test as root - Exiting.\n");
@@ -243,13 +245,16 @@ int main(int argc, char **argv)
  		printf("Failed to test queue: %d\n", err);
  		goto err_out;
  	}
+	ksft_test_result_pass("# Test Passed\n");
  	return ksft_exit_pass();

tools/testing/selftests/ipc/msgque.c int main(int argc, char **argv) · line 259

Quoted 10 lines
tools/testing/selftests/ipc/msgque.c +2 -0
  err_destroy:
  	if (msgctl(msgque.msq_id, IPC_RMID, NULL)) {
  		printf("Failed to destroy queue: %d\n", -errno);
+		ksft_test_result_fail("# Test Failed\n");
  		return ksft_exit_fail();
  	}
  err_out:
+	ksft_test_result_fail("# Test Failed\n");
  	return ksft_exit_fail();
  }

I am not seeing any value in adding these. It already has messages in error legs and it prints totals at the end:

Quoted 4 lines

# Totals: pass:0 fail:0 xfail:0 xpass:0 skip:0 error:0

thanks,
-- Shuah

The stats printed at the end have no account of whether the test passed or failed. As seen in the totals message at the end, all the values for various test results (pass, fail,xfail, xpass,skip and error) is 0. With this patch we'll get the totals at the end of test like:
# Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0
_______________________________________________
Linux-kernel-mentees mailing list [email protected]
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees