Skip to contentSkip to conversation

doio/growfiles.c: show line number when test failed

PATCH New Han Pingtian 2 participants 2 messages Feb 27, 2017 – Mar 2, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 doio/growfiles.c: show line number when test failed

Please review this patch. Thanks.

The original code always shows "growfiles.c:132: Test failed". With this patch, it will show the right line number where exit() be called.

---
 testcases/kernel/fs/doio/growfiles.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
testcases/kernel/fs/doio/growfiles.c +3 -3
index bbad230..6f25a54 100644
@@ -125,11 +125,11 @@ char *TCID = "growfiles";	/* Default test program identifier.    */
 int TST_TOTAL = 1;		/* Total number of test cases. */
 
 /* To avoid extensive modifications to the code, use this bodge */
-#define exit(x) myexit(x)
-void myexit(int x)
+#define exit(x) myexit(__FILE__, __LINE__, x)
+void myexit(const char *file, const int lineno, int x)
 {
 	if (x)
-		tst_resm(TFAIL, "Test failed");
+		tst_resm_(file, lineno, TFAIL, "Test failed");
 	else
 		tst_resm(TPASS, "Test passed");
 	tst_exit();
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 doio/growfiles.c: show line number when test failed

Hi!

Quoted 15 lines

The original code always shows "growfiles.c:132: Test failed". With this patch, it will show the right line number where exit() be called.

---
 testcases/kernel/fs/doio/growfiles.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
testcases/kernel/fs/doio/growfiles.c +0 -1
index bbad230..6f25a54 100644
@@ -125,11 +125,11 @@ char *TCID = "growfiles";	/* Default test program identifier.    */
 int TST_TOTAL = 1;		/* Total number of test cases. */
 
 /* To avoid extensive modifications to the code, use this bodge */
-#define exit(x) myexit(x)

testcases/kernel/fs/doio/growfiles.c char *TCID = "growfiles"; /* Default test program identifier. */ · line 135

Quoted 10 lines
testcases/kernel/fs/doio/growfiles.c +3 -2
-void myexit(int x)
+#define exit(x) myexit(__FILE__, __LINE__, x)
+void myexit(const char *file, const int lineno, int x)
 {
 	if (x)
-		tst_resm(TFAIL, "Test failed");
+		tst_resm_(file, lineno, TFAIL, "Test failed");
 	else
 		tst_resm(TPASS, "Test passed");
 	tst_exit();

I would rather see the code cleaned up. Basically most of the exit(1) calls are part of the option parsing code that should rather be tst_brkm(TBROK, ...); Then there is a very few places that actually call exit() that should either be tst_brkm(TBROK, ...) or tst_resm().

The worst part is that this define replaces exit() in the signal handler as well which is not safe at all...

Or we can just get rid of the unfinished attempt to convert the testcase to LTP test API. Or even try to sync with the version from xfstests that has been cleaned up...

Signature · 2 lines
Cyril Hrubis
[email protected]