new ltp lib doesn't print actual error
Hi,
When running a test with the new LTP lib, noticed that if some error occurs in a library (tst_tmpdir.c), it'll print the same message:
TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK: Non-NULL cleanup in newlib!
but should be:
TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK: tst_tmpdir: mkdtemp(/usr/creF5DhMS) failed: EACCES
May be we should remove the strict check in tst_res.c? Otherwise we don't see the actual error.
lib/tst_res.c +0 -0
@@ -547,11 +547,6 @@ void tst_brkm_(const char *file, const int lineno,
int ttype,
EXPAND_VAR_ARGS(tmesg, arg_fmt, USERMESG);
if (tst_test) {- if (func) {
- tst_brk_(file, lineno, TBROK,
- "Non-NULL cleanup in newlib!");
- }
-
tst_brk_(file, lineno, ttype, "%s", tmesg);
} else {
tst_brk__(file, lineno, ttype, func, "%s", tmesg);Thanks,
Alexey
----- Original Message -----
Quoted 13 lines
From: "Alexey Kodanev" <[email protected]>
To: [email protected]
Sent: Wednesday, 15 June, 2016 7:08:11 PM
Subject: [LTP] new ltp lib doesn't print actual errorHi,
When running a test with the new LTP lib, noticed that if some error occurs in a library (
tst_tmpdir.c), it'll print the same message:TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK: Non-NULL cleanup in newlib!
Quoted 7 lines
but should be:
TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK:tst_tmpdir: mkdtemp(/usr/creF5DhMS) failed: EACCESMay be we should remove the strict check in
tst_res.c? Otherwise we don't see the actual error.
Or turn it into warning, so that we get both failures. tst_tmpdir() needs a fix to not pass cleanup function for newlib testcases.
lib/tst_res.c +2 -2
@@ -548,8 +548,8 @@ void tst_brkm_(const char *file, const int lineno, int ttype,if (tst_test) {if (func) { -tst_brk_ (file, lineno,TBROK , -"Non-NULL cleanup in newlib!" ); +tst_resm (TWARN ,"Non-NULL cleanup in newlib! %s:%d" , + file, lineno); }tst_brk_ (file, lineno, ttype,"%s" , tmesg);
Hi,
Quoted 32 lines · Jan Stancek
----- Original Message -----
Quoted 13 lines
From: "Alexey Kodanev" <[email protected]>
To: [email protected]
Sent: Wednesday, 15 June, 2016 7:08:11 PM
Subject: [LTP] new ltp lib doesn't print actual errorHi,
When running a test with the new LTP lib, noticed that if some error occurs in a library (
tst_tmpdir.c), it'll print the same message:TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK: Non-NULL cleanup in newlib!Quoted 7 lines
but should be:
TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK:tst_tmpdir: mkdtemp(/usr/creF5DhMS) failed: EACCESMay be we should remove the strict check in
tst_res.c? Otherwise we don't see the actual error.Or turn it into warning, so that we get both failures.
tst_tmpdir()needs a fix to not pass cleanup function for newlib testcases.lib/tst_res.c +0
-0
lib/tst_res.c void tst_brkm_(const char *file, const int lineno, int ttype, · line 555
Quoted 10 lines
lib/tst_res.c +2
-2@@ -548,8 +548,8 @@ void tst_brkm_(const char *file, const int lineno, int ttype,if (tst_test) {if (func) { -tst_brk_ (file, lineno,TBROK , -"Non-NULL cleanup in newlib!" ); +tst_resm (TWARN ,"Non-NULL cleanup in newlib! %s:%d" , + file, lineno); }tst_brk_ (file, lineno, ttype,"%s" , tmesg);
OK, we can do that, I just thought why we need to print it as it's not related to the test...
Best regards,
Alexey
Hi!
Quoted 6 lines
When running a test with the new LTP lib, noticed that if some error occurs in a library (
tst_tmpdir.c), it'll print the same message:TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK: Non-NULL cleanup in newlib!
Quoted 7 lines
but should be:
TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK:tst_tmpdir: mkdtemp(/usr/creF5DhMS) failed: EACCESMay be we should remove the strict check in
tst_res.c? Otherwise we don't see the actual error.
Passing a cleanup callback from newlib testcase is always a mistake because it's never executed. I would prefer keeping the check in the library.
It does not matter in case of tmpdir_cleanup() since that function only prints a warning message. What about removing the tmpdir_cleanup() cleanup instead? It does not seem to be useful to me anyway.
Signature · 2 lines
Cyril Hrubis [email protected]
Hi,
Quoted 14 lines · Cyril Hrubis
Hi!
Quoted 6 lines
When running a test with the new LTP lib, noticed that if some error occurs in a library (
tst_tmpdir.c), it'll print the same message:TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK: Non-NULL cleanup in newlib!Quoted 7 lines
but should be:
TMPDIR=/usr ./creat01
tst_tmpdir.c:155: BROK:tst_tmpdir: mkdtemp(/usr/creF5DhMS) failed: EACCESMay be we should remove the strict check in
tst_res.c? Otherwise we don't see the actual error.
Quoted 7 lines
Passing a cleanup callback from newlib testcase is always a mistake because it's never executed. I would prefer keeping the check in the library.
It does not matter in case of
tmpdir_cleanup()since that function only prints a warning message. What about removing thetmpdir_cleanup()cleanup instead? It does not seem to be useful to me anyway.
Agree, I've checked both old/new lib, and now it looks good. Applied patch.
Thanks,
Alexey