[LTP] [PATCH v4 4/6] tst_res_: Print error to stderr, with filename and lineno

Petr Vorel pvorel@suse.cz
Wed Jul 23 21:38:20 CEST 2025


Hi Cyril,

> Hi!
> > Printing to stderr, tst_res_ filename and lineno helps debugging wrong
> > code. Best would be if it prints either code which invoked it or the
> > original message, but at least this is an improvement.

> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > ---
> > * New in v4

> >  testcases/lib/tst_res_.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)

> > diff --git a/testcases/lib/tst_res_.c b/testcases/lib/tst_res_.c
> > index c09d689ee5..5b255d4d54 100644
> > --- a/testcases/lib/tst_res_.c
> > +++ b/testcases/lib/tst_res_.c
> > @@ -16,7 +16,7 @@ int main(int argc, char *argv[])
> >  	int type, i;

> >  	if (argc < 5) {
> > -		printf("argc = %i expected 5\n", argc);
> > +		fprintf(stderr, "%s:%d: argc = %i expected 5\n", __FILE__, __LINE__, argc);
> >  		goto help;
> >  	}

> > @@ -35,7 +35,7 @@ int main(int argc, char *argv[])
> >  	} else if (!strcmp(argv[3], "TBROK")) {
> >  		type = TBROK;
> >  	} else {
> > -		printf("Wrong type '%s'\n", argv[3]);
> > +		fprintf(stderr, "%s:%d: Wrong type '%s'\n", __FILE__, __LINE__, argv[3]);

> In this case we cantually have file and line in argv[1] and argv[2] and
> we can print that as well.

Thanks for a hint! I see I was blind (it's used below :)).

Because I really want whole functionality merged, I merged all but this patch.
And for this single patch I'll send v6.

> And possibly in the case that argc < 5 we can attempt to print argv[1]
> and argv[2] as well, but it's likely going to be wrong data since the
> number of arguments does not match in that case.

Maybe to detect if argv[2] is a number and then use argv[1] and argv[2],
otherwise use __FILE__ and __LINE__ ? But since atoi() does not detect errors,
we would have to use something smarter - safe_strtol() if possible to use LTP
API otherwise strtol()?

Or is it just too complicated and we can use argv[1] and argv[2] if argc > 2
and fallback to __FILE__ and __LINE__ otherwise?

Anyway, thanks a lot for your work and help to slowly move shell tests to shell
loader.  Hopefully we are getting closer to have shell tests more reliable
without a need to rewrite everything to C.

Kind regards,
Petr

> >  		goto help;
> >  	}

> > -- 
> > 2.50.1


More information about the ltp mailing list