* [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above @ 2017-09-06 11:30 naresh.kamboju 2017-09-06 11:54 ` Jan Stancek 0 siblings, 1 reply; 8+ messages in thread From: naresh.kamboju @ 2017-09-06 11:30 UTC (permalink / raw) To: ltp From: Naresh Kamboju <naresh.kamboju@linaro.org> Test utimensat failed on 4.4 kernel is due to expected error is EACCES but got EPERM. The below LTP patch setting up expected error as EACCES for 4.8.0 below kernel b9157aee: utimensat: re-apply: fix immutable file retcodes for 4.8.0 and newer Amending patch to check 4.4.27 instead of 4.8.0 according to below patch tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git branch: v4.4.27 commit id: b3b4283 vfs: move permission checking into notify_change() for utimes(NULL) Bug reported on this case, LKFT: linux-stable-4.4: LTP utimensat01 failed-EXPECTED: EACCES but got EPERM https://bugs.linaro.org/show_bug.cgi?id=3142 Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org> --- testcases/kernel/syscalls/utimensat/utimensat_tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh index 48154d6..a832433 100755 --- a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh +++ b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh @@ -30,9 +30,9 @@ if tst_kvcmp -lt "2.6.22"; then tst_brkm TCONF "System kernel version is less than 2.6.22,cannot execute test" fi -# Starting with 4.8.0 operations on immutable files return EPERM instead of +# Starting with 4.4.27 operations on immutable files return EPERM instead of # EACCES. -if tst_kvcmp -lt "4.8.0"; then +if tst_kvcmp -lt "4.4.27"; then imaccess=EACCES else imaccess=EPERM -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above 2017-09-06 11:30 [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above naresh.kamboju @ 2017-09-06 11:54 ` Jan Stancek 2017-09-06 15:29 ` Sumit Semwal 0 siblings, 1 reply; 8+ messages in thread From: Jan Stancek @ 2017-09-06 11:54 UTC (permalink / raw) To: ltp ----- Original Message ----- > From: Naresh Kamboju <naresh.kamboju@linaro.org> > > Test utimensat failed on 4.4 kernel is due to expected error is > EACCES but got EPERM. > > The below LTP patch setting up expected error as EACCES for 4.8.0 below > kernel > b9157aee: utimensat: re-apply: fix immutable file retcodes for 4.8.0 and > newer > > Amending patch to check 4.4.27 instead of 4.8.0 according to below patch > tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git > branch: v4.4.27 > commit id: b3b4283 > vfs: move permission checking into notify_change() for utimes(NULL) > > Bug reported on this case, > LKFT: linux-stable-4.4: LTP utimensat01 failed-EXPECTED: EACCES but got EPERM > https://bugs.linaro.org/show_bug.cgi?id=3142 > > Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org> > --- > testcases/kernel/syscalls/utimensat/utimensat_tests.sh | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh > b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh > index 48154d6..a832433 100755 > --- a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh > +++ b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh > @@ -30,9 +30,9 @@ if tst_kvcmp -lt "2.6.22"; then > tst_brkm TCONF "System kernel version is less than 2.6.22,cannot execute > test" > fi > > -# Starting with 4.8.0 operations on immutable files return EPERM instead of > +# Starting with 4.4.27 operations on immutable files return EPERM instead of > # EACCES. > -if tst_kvcmp -lt "4.8.0"; then > +if tst_kvcmp -lt "4.4.27"; then Isn't this going to break the test for kernels 4.5 up to 4.7? > imaccess=EACCES > else > imaccess=EPERM > -- > 2.7.4 > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above 2017-09-06 11:54 ` Jan Stancek @ 2017-09-06 15:29 ` Sumit Semwal 2017-09-25 14:46 ` Cyril Hrubis 0 siblings, 1 reply; 8+ messages in thread From: Sumit Semwal @ 2017-09-06 15:29 UTC (permalink / raw) To: ltp On 6 September 2017 at 17:24, Jan Stancek <jstancek@redhat.com> wrote: > > > ----- Original Message ----- >> From: Naresh Kamboju <naresh.kamboju@linaro.org> >> >> Test utimensat failed on 4.4 kernel is due to expected error is >> EACCES but got EPERM. >> >> The below LTP patch setting up expected error as EACCES for 4.8.0 below >> kernel >> b9157aee: utimensat: re-apply: fix immutable file retcodes for 4.8.0 and >> newer >> >> Amending patch to check 4.4.27 instead of 4.8.0 according to below patch >> tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git >> branch: v4.4.27 >> commit id: b3b4283 >> vfs: move permission checking into notify_change() for utimes(NULL) >> >> Bug reported on this case, >> LKFT: linux-stable-4.4: LTP utimensat01 failed-EXPECTED: EACCES but got EPERM >> https://bugs.linaro.org/show_bug.cgi?id=3142 >> >> Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org> >> --- >> testcases/kernel/syscalls/utimensat/utimensat_tests.sh | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh >> b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh >> index 48154d6..a832433 100755 >> --- a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh >> +++ b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh >> @@ -30,9 +30,9 @@ if tst_kvcmp -lt "2.6.22"; then >> tst_brkm TCONF "System kernel version is less than 2.6.22,cannot execute >> test" >> fi >> >> -# Starting with 4.8.0 operations on immutable files return EPERM instead of >> +# Starting with 4.4.27 operations on immutable files return EPERM instead of >> # EACCES. >> -if tst_kvcmp -lt "4.8.0"; then >> +if tst_kvcmp -lt "4.4.27"; then > > Isn't this going to break the test for kernels 4.5 up to 4.7? I'd think so too - perhaps a better check is to check for (if 4.4.X, then if > .27) OR (greater than 4.8.0)? > >> imaccess=EACCES >> else >> imaccess=EPERM >> -- >> 2.7.4 >> >> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above 2017-09-06 15:29 ` Sumit Semwal @ 2017-09-25 14:46 ` Cyril Hrubis 2017-09-27 11:39 ` Cyril Hrubis 2017-09-27 13:55 ` Jan Stancek 0 siblings, 2 replies; 8+ messages in thread From: Cyril Hrubis @ 2017-09-25 14:46 UTC (permalink / raw) To: ltp Hi! > I'd think so too - perhaps a better check is to check for (if 4.4.X, > then if > .27) OR (greater than 4.8.0)? The safest bet would be allowing both for kernels between 4.4 and 4.8. Something like this may work (beware untested): diff --git a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh index 48154d6e6..41ea7997a 100755 --- a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh +++ b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh @@ -31,13 +31,18 @@ if tst_kvcmp -lt "2.6.22"; then fi # Starting with 4.8.0 operations on immutable files return EPERM instead of -# EACCES. -if tst_kvcmp -lt "4.8.0"; then +# EACCES. The patch that changed the errno got as well backported to stable +# kernel branches and so we cannot really say what is correct for kernels in +# the range between 4.4 and 4.8. +imaccess="EACCES EPERM" + +if tst_kvcmp -lt "4.4"; then imaccess=EACCES -else - imaccess=EPERM fi +if tst_kvcmp -ge "4.8"; then + imaccess=EPERM +fi RESULT_FILE=$TMPDIR/utimensat.result @@ -142,7 +147,13 @@ check_result() "$EXPECT_MTIME_CHANGED" echo "RESULT: $res $atime $mtime" - if test "$res" != "$EXPECTED_RESULT"; then + for err in $EXPECTED_RESULT; do + if test "$res" = "$err"; then + errno_found="$err"; + fi + done + + if test -z "$errno_found"; then test_failed return fi @@ -223,7 +234,7 @@ run_test() CMD="./$TEST_PROG -q $FILE $4" echo "$CMD" sudo $s_arg -u $test_user $CMD > $RESULT_FILE - check_result $? $5 $6 $7 + check_result $? "$5" $6 $7 echo if test $do_read_fd_test -ne 0; then @@ -232,7 +243,7 @@ run_test() CMD="./$TEST_PROG -q -d $FILE NULL $4" echo "$CMD" sudo $s_arg -u $test_user $CMD > $RESULT_FILE - check_result $? $5 $6 $7 + check_result $? "$5" $6 $7 echo fi @@ -245,7 +256,7 @@ run_test() CMD="./$TEST_PROG -q -w -d $FILE NULL $4" echo "$CMD" sudo $s_arg -u $test_user $CMD > $RESULT_FILE - check_result $? $5 $6 $7 + check_result $? "$5" $6 $7 echo fi @@ -424,10 +435,10 @@ echo "Testing immutable file, owned by self" echo echo "***** Testing times==NULL case *****" -run_test -W "" 600 "+i" "" $imaccess +run_test -W "" 600 "+i" "" "$imaccess" echo "***** Testing times=={ UTIME_NOW, UTIME_NOW } case *****" -run_test -W "" 600 "+i" "0 n 0 n" $imaccess +run_test -W "" 600 "+i" "0 n 0 n" "$imaccess" echo "***** Testing times=={ UTIME_OMIT, UTIME_OMIT } case *****" run_test -W "" 600 "+i" "0 o 0 o" SUCCESS n n @@ -450,10 +461,10 @@ echo "Testing immutable append-only file, owned by self" echo echo "***** Testing times==NULL case *****" -run_test -W "" 600 "+ai" "" $imaccess +run_test -W "" 600 "+ai" "" "$imaccess" echo "***** Testing times=={ UTIME_NOW, UTIME_NOW } case *****" -run_test -W "" 600 "+ai" "0 n 0 n" $imaccess +run_test -W "" 600 "+ai" "0 n 0 n" "$imaccess" echo "***** Testing times=={ UTIME_OMIT, UTIME_OMIT } case *****" run_test -W "" 600 "+ai" "0 o 0 o" SUCCESS n n -- Cyril Hrubis chrubis@suse.cz ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above 2017-09-25 14:46 ` Cyril Hrubis @ 2017-09-27 11:39 ` Cyril Hrubis 2017-09-27 13:55 ` Jan Stancek 1 sibling, 0 replies; 8+ messages in thread From: Cyril Hrubis @ 2017-09-27 11:39 UTC (permalink / raw) To: ltp Hi! > The safest bet would be allowing both for kernels between 4.4 and 4.8. > > Something like this may work (beware untested): And I've just checked the patch, it seems to work fine for me. Can anybody else test this before it gets commited? > diff --git a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh > index 48154d6e6..41ea7997a 100755 > --- a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh > +++ b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh > @@ -31,13 +31,18 @@ if tst_kvcmp -lt "2.6.22"; then > fi > > # Starting with 4.8.0 operations on immutable files return EPERM instead of > -# EACCES. > -if tst_kvcmp -lt "4.8.0"; then > +# EACCES. The patch that changed the errno got as well backported to stable > +# kernel branches and so we cannot really say what is correct for kernels in > +# the range between 4.4 and 4.8. > +imaccess="EACCES EPERM" > + > +if tst_kvcmp -lt "4.4"; then > imaccess=EACCES > -else > - imaccess=EPERM > fi > > +if tst_kvcmp -ge "4.8"; then > + imaccess=EPERM > +fi > > RESULT_FILE=$TMPDIR/utimensat.result > > @@ -142,7 +147,13 @@ check_result() > "$EXPECT_MTIME_CHANGED" > echo "RESULT: $res $atime $mtime" > > - if test "$res" != "$EXPECTED_RESULT"; then > + for err in $EXPECTED_RESULT; do > + if test "$res" = "$err"; then > + errno_found="$err"; > + fi > + done > + > + if test -z "$errno_found"; then > test_failed > return > fi > @@ -223,7 +234,7 @@ run_test() > CMD="./$TEST_PROG -q $FILE $4" > echo "$CMD" > sudo $s_arg -u $test_user $CMD > $RESULT_FILE > - check_result $? $5 $6 $7 > + check_result $? "$5" $6 $7 > echo > > if test $do_read_fd_test -ne 0; then > @@ -232,7 +243,7 @@ run_test() > CMD="./$TEST_PROG -q -d $FILE NULL $4" > echo "$CMD" > sudo $s_arg -u $test_user $CMD > $RESULT_FILE > - check_result $? $5 $6 $7 > + check_result $? "$5" $6 $7 > echo > fi > > @@ -245,7 +256,7 @@ run_test() > CMD="./$TEST_PROG -q -w -d $FILE NULL $4" > echo "$CMD" > sudo $s_arg -u $test_user $CMD > $RESULT_FILE > - check_result $? $5 $6 $7 > + check_result $? "$5" $6 $7 > echo > fi > > @@ -424,10 +435,10 @@ echo "Testing immutable file, owned by self" > echo > > echo "***** Testing times==NULL case *****" > -run_test -W "" 600 "+i" "" $imaccess > +run_test -W "" 600 "+i" "" "$imaccess" > > echo "***** Testing times=={ UTIME_NOW, UTIME_NOW } case *****" > -run_test -W "" 600 "+i" "0 n 0 n" $imaccess > +run_test -W "" 600 "+i" "0 n 0 n" "$imaccess" > > echo "***** Testing times=={ UTIME_OMIT, UTIME_OMIT } case *****" > run_test -W "" 600 "+i" "0 o 0 o" SUCCESS n n > @@ -450,10 +461,10 @@ echo "Testing immutable append-only file, owned by self" > echo > > echo "***** Testing times==NULL case *****" > -run_test -W "" 600 "+ai" "" $imaccess > +run_test -W "" 600 "+ai" "" "$imaccess" > > echo "***** Testing times=={ UTIME_NOW, UTIME_NOW } case *****" > -run_test -W "" 600 "+ai" "0 n 0 n" $imaccess > +run_test -W "" 600 "+ai" "0 n 0 n" "$imaccess" > > echo "***** Testing times=={ UTIME_OMIT, UTIME_OMIT } case *****" > run_test -W "" 600 "+ai" "0 o 0 o" SUCCESS n n > > -- > Cyril Hrubis > chrubis@suse.cz > > -- > Mailing list info: https://lists.linux.it/listinfo/ltp -- Cyril Hrubis chrubis@suse.cz ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above 2017-09-25 14:46 ` Cyril Hrubis 2017-09-27 11:39 ` Cyril Hrubis @ 2017-09-27 13:55 ` Jan Stancek 2017-09-27 15:12 ` Cyril Hrubis 1 sibling, 1 reply; 8+ messages in thread From: Jan Stancek @ 2017-09-27 13:55 UTC (permalink / raw) To: ltp ----- Original Message ----- > Hi! > > I'd think so too - perhaps a better check is to check for (if 4.4.X, > > then if > .27) OR (greater than 4.8.0)? > > The safest bet would be allowing both for kernels between 4.4 and 4.8. But also less strict. Why not just add check for 3rd digit? We already do that in other tests. diff --git a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh index 48154d6e65b2..6d7fc5030aff 100755 --- a/testcases/kernel/syscalls/utimensat/utimensat_tests.sh +++ b/testcases/kernel/syscalls/utimensat/utimensat_tests.sh @@ -32,13 +32,16 @@ fi # Starting with 4.8.0 operations on immutable files return EPERM instead of # EACCES. -if tst_kvcmp -lt "4.8.0"; then +# This patch has also been merged to stable 4.4 with +# b3b4283 ("vfs: move permission checking into notify_change() for utimes(NULL)") +if tst_kvcmp -ge "4.4.27" -a -lt "4.5.0"; then + imaccess=EPERM +else if tst_kvcmp -lt "4.8.0"; then imaccess=EACCES else imaccess=EPERM fi Regards, Jan ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above 2017-09-27 13:55 ` Jan Stancek @ 2017-09-27 15:12 ` Cyril Hrubis 2017-09-27 22:38 ` Naresh Kamboju 0 siblings, 1 reply; 8+ messages in thread From: Cyril Hrubis @ 2017-09-27 15:12 UTC (permalink / raw) To: ltp Hi! > But also less strict. Why not just add check for 3rd digit? > We already do that in other tests. If that works for everyone, let's go with it. I just want to avoid a need to maintain a maze of kernel versions. -- Cyril Hrubis chrubis@suse.cz ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above 2017-09-27 15:12 ` Cyril Hrubis @ 2017-09-27 22:38 ` Naresh Kamboju 0 siblings, 0 replies; 8+ messages in thread From: Naresh Kamboju @ 2017-09-27 22:38 UTC (permalink / raw) To: ltp On 27 September 2017 at 08:12, Cyril Hrubis <chrubis@suse.cz> wrote: > Hi! >> But also less strict. Why not just add check for 3rd digit? >> We already do that in other tests. > > If that works for everyone, let's go with it. I just want to avoid a > need to maintain a maze of kernel versions. I have tested Jan 's patch there is a syntax problem. - else if + elif I am sending v2 patch. Thanks for looking into this issue. - Naresh > > -- > Cyril Hrubis > chrubis@suse.cz ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-09-27 22:38 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-09-06 11:30 [LTP] [PATCH] utimensat_tests.sh: returns EPERM on 4.4.27 and above naresh.kamboju 2017-09-06 11:54 ` Jan Stancek 2017-09-06 15:29 ` Sumit Semwal 2017-09-25 14:46 ` Cyril Hrubis 2017-09-27 11:39 ` Cyril Hrubis 2017-09-27 13:55 ` Jan Stancek 2017-09-27 15:12 ` Cyril Hrubis 2017-09-27 22:38 ` Naresh Kamboju
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox