[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