[LTP] [PATCH] syscalls/io_submit: Add TTERRNO/TERRNO when test fail

zhaogongyi zhaogongyi@huawei.com
Tue Apr 19 14:05:07 CEST 2022


Hi Cyril,


> 
> Hi!
> > Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
> > ---
> >  testcases/kernel/syscalls/io_submit/io_submit01.c | 2 +-
> > testcases/kernel/syscalls/io_submit/io_submit02.c | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/testcases/kernel/syscalls/io_submit/io_submit01.c
> > b/testcases/kernel/syscalls/io_submit/io_submit01.c
> > index db541fc01..ba75f6d81 100644
> > --- a/testcases/kernel/syscalls/io_submit/io_submit01.c
> > +++ b/testcases/kernel/syscalls/io_submit/io_submit01.c
> > @@ -130,7 +130,7 @@ static void verify_io_submit(unsigned int n)
> >  		return;
> >  	}
> >
> > -	tst_res(TFAIL, "io_submit() returned %i(%s), expected %s(%i)",
> > +	tst_res(TFAIL | TERRNO, "io_submit() returned %i(%s), expected
> > +%s(%i)",
> >  		ret, ret < 0 ? tst_strerrno(-ret) : "SUCCESS",
> >  		errno_name(t->exp_errno), t->exp_errno);  }
> 
> NACK.
> 
> As far as I can tell the io_submit() calls returns negative error instead of
> setting errno, at least that's what libaio documentation states.

Yes, according to linux manual, libaio interface don't set errno when calling failed, so, do we also need to remove the TREENO here?

80         TEST(io_setup(1, &ctx));
81         if (TST_RET == -ENOSYS)
82                 tst_brk(TCONF | TRERRNO, "io_setup(): AIO not supported by kernel");
83         else if (TST_RET)
84                 tst_brk(TBROK | TRERRNO, "io_setup() failed");


> 
> > diff --git a/testcases/kernel/syscalls/io_submit/io_submit02.c
> > b/testcases/kernel/syscalls/io_submit/io_submit02.c
> > index 38b8555d8..6ba4d99a5 100644
> > --- a/testcases/kernel/syscalls/io_submit/io_submit02.c
> > +++ b/testcases/kernel/syscalls/io_submit/io_submit02.c
> > @@ -79,7 +79,7 @@ static void run(unsigned int i)
> >  	if (TST_RET == tc[i].nr)
> >  		tst_res(TPASS, "io_submit() %s", tc[i].desc);
> >  	else
> > -		tst_res(TFAIL, "io_submit() returns %ld, expected %ld", TST_RET,
> tc[i].nr);
> > +		tst_res(TFAIL | TTERRNO, "io_submit() returns %ld,
> expected %ld",
> > +TST_RET, tc[i].nr);
> 
> The best we can do here is to use tst_strerrno() to print the error as we do
> in the io_submit().

According to linux manual, call io_submit through syscall, it will set errno:
	"If the system call is invoked via syscall(2), then the return value follows the usual conventions for indicating an error: -1, with  errno  set  to  a
    (positive) value that indicates the error."


> 
> >  	for (j = 0; j < TST_RET; j++) {
> >  		tst_syscall(__NR_io_getevents, *tc[i].ctx, 1, 1, &evbuf,
> > --
> > 2.17.1
> >
> >
> > --
> > Mailing list info: https://lists.linux.it/listinfo/ltp
> 
> --
> Cyril Hrubis
> chrubis@suse.cz


More information about the ltp mailing list