[LTP] [PATCH v3] getcwd01: Use syscall directly check invalid argument
Wei Gao
wegao@suse.com
Fri Dec 1 04:52:33 CET 2023
On Tue, Nov 28, 2023 at 11:52:42AM +0100, Petr Vorel wrote:
> > Fixes: #1084
>
> You haven't written the reason for switching to raw syscall syscall(__NR_getcwd, ...).
> (Adding https://github.com/linux-test-project/ltp/issues/1084 is not enough, the
> reason for the change is important enough to write to the commit message).
>
> Also, raw syscall obviously returns a different errnos than glibc wrapper.
> But again, it would be better to document in the commit message the reason for
> the errno change.
I add more comments in patchv4 for improvement.
> > - if (res) {
> > - tst_res(TFAIL, "getcwd() succeeded unexpectedly");
> > - return;
> > - }
> > -
> > - if (TST_ERR != tc->exp_err) {
> > - tst_res(TFAIL | TTERRNO, "getcwd() failed unexpectedly, expected %s",
> > - tst_strerrno(tc->exp_err));
> > - return;
> > - }
>
> > - tst_res(TPASS | TTERRNO, "getcwd() failed as expected");
> > + TST_EXP_FAIL2(syscall(__NR_getcwd, tc->buf, tc->size), tc->exp_err);
>
> If the reason is that getcwd() wrapper in musl is not easily fixable (we
> probably don't want #ifdef __GLIBC__), I'm ok for this.
>
> OTOH if test would be easily fixable for musl, we could consider testing both
> raw syscall and libc wrapper via .test_variants (separate effort).
I think we can add extra variant such as LIB_TYPE into t_case and use it to go different check logic.
But we can not completely avoid use macro to identify musl or not if i understand correctly.
>
> Kind regards,
> Petr
>
> > }
>
> > static struct tst_test test = {
Regards
Gao Wei
More information about the ltp
mailing list