From: CAI Q. <ca...@cc...> - 2009-03-19 09:34:55
|
From: Subrata Modak <su...@li...> Subject: Re: [LTP] [PATCH] Fs_perms & Runltp: Fix 2 Issues Date: Thu, 19 Mar 2009 14:22:39 +0530 > On Thu, 2009-03-19 at 15:28 +0800, CAI Qian wrote: >> Hi, >> >> This patch is to fix the 2 further issues apart from the patch I sent >> out yestoday, >> >> [PATCH] Fs_perms: Miss Installing a Binary >> >> Fs_perms test always gives false failure, >> >> # ./fs_perms_simpletest.sh >> ... >> fs_perms 1 PASS : r a 040 file owned by (99/99) as >> user/group(99/500) >> fs_perms 1 PASS : r a 400 file owned by (99/99) as >> user/group(200/99) >> >> # echo $? >> 1 >> >> This is because in the script, it returns whatever the last "fs_perms" >> command returns, >> >> # cat ./fs_perms_simpletest.sh >> ... >> ./fs_perms 400 99 99 200 99 r 1 >> >> In the case, if "fs_perms" passes, it will return "1" (it returns >> whatever the expected result specificed. That is 1 here), >> >> tst_resm(exresult == result ? TPASS : TFAIL, "%c a %03o file owned by (%d/%d) as user/group(%d/%d)", >> fperm[0], mode, cuserId, cgroupId, userId, groupId); >> return result; >> >> The patch fixes it by validating the return code of every "fs_perms" >> command, and returns the final result at the end of the main script -- >> fs_perms_simpletest.sh. >> >> The other issue is that, some tests need to access files in >> "${LTPROOT}/testcases/bin" directory. For example, "fs_perms" and >> "fs_racer". As the result, if we are running the tests outside of that >> directory through "pan" alone, "runltp.sh" or "runltplite.sh", those >> tests are not running properly, >> >> fs_perms_simpletest.sh: line 14: ./fs_perms: No such file or directory >> ... >> fs_racer.sh: line 37: ./fs_racer_file_create.sh: No such file or >> directory >> ... >> >> The patch fixes it in both "runltp.sh" and "runltplite.sh" by changing >> the current working directory to the "bin" just before running "pan", >> and restore it back. However, the problem still exist if running those >> tests by "pan" alone not through either "runltp.sh" or "runltplite.sh". >> >> This patch has been tested by running the most of LTP tests through >> "runltp.sh" without seen any negative affect. >> >> Signed-off-by: CAI Qian <ca...@cc...> > > Thanks. > Subrata, can you apply the following to revert this part of patch that you made previous? I don't think we need this part yet after all other related patches applied. In addition, it causes the test failed to run from the its own directory, which we could test it there before, # pwd /home/caiqian/buffer/ltp/testcases/kernel/fs/fs_perms # ./fs_perms_simpletest.sh ... fs_perms 1 BROK : testsetup() failed: No such file or directory cp: cannot stat `/testcases/bin/testx': No such file or directory fs_perms 1 BROK : testsetup() failed: No such file or directory cp: cannot stat `/testcases/bin/testx': No such file or directory fs_perms 1 BROK : testsetup() failed: No such file or directory Signed-off-by: CAI Qian <ca...@cc...> Index: testcases/kernel/fs/fs_perms/fs_perms.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/kernel/fs/fs_perms/fs_perms.c,v retrieving revision 1.7 retrieving revision 1.6 diff -u -r1.7 -r1.6 --- testcases/kernel/fs/fs_perms/fs_perms.c 19 Mar 2009 06:41:36 -0000 1.7 +++ testcases/kernel/fs/fs_perms/fs_perms.c 6 May 2008 16:22:35 -0000 1.6 @@ -47,13 +47,13 @@ int ret; ret = unlink("test.file"); - if (ret && errno != ENOENT) + if (ret && errno != ENOENT) goto done; - ret = system("cp $LTPROOT/testcases/bin/testx test.file"); - if (ret) + ret = system("cp testx test.file"); + if (ret) goto done; ret = chmod("test.file", mode); - if (ret) + if (ret) goto done; ret = chown("test.file", cuserId, cgroupId); > Regards-- > Subrata > >> >> --- ltp-full-20090228/runltp.orig 2009-03-19 13:04:01.000000000 +0800 >> +++ ltp-full-20090228/runltp 2009-03-19 13:05:49.000000000 +0800 >> @@ -736,6 +736,9 @@ >> >> echo "Running tests......." >> test_start_time=$(date) >> + >> + # Some tests need to run inside the "bin" directory. >> + cd "${LTPROOT}/testcases/bin" >> ${LTPROOT}/pan/pan $QUIET_MODE -e -S $INSTANCES $DURATION -a $$ -n $$ $PRETTY_PRT -f ${TMP}/alltests $LOGFILE $OUTPUTFILE $FAILCMDFILE >> >> if [ $? -eq 0 ]; then >> @@ -747,6 +750,7 @@ >> VALUE=1 >> export LTP_EXIT_VALUE=1; >> fi >> + cd .. >> echo "LTP Version: $version_date" >> >> if [ "$ALT_HTML_OUT" -eq 1 ] ; then #User wants the HTML output to be created, it then needs to be generated >> --- ltp-full-20090228/testcases/kernel/fs/fs_perms/fs_perms_simpletest.sh.orig 2009-03-19 13:02:39.000000000 +0800 >> +++ ltp-full-20090228/testcases/kernel/fs/fs_perms/fs_perms_simpletest.sh 2009-03-19 13:03:31.000000000 +0800 >> @@ -1,18 +1,35 @@ >> -./fs_perms 001 99 99 12 100 x 0 >> -./fs_perms 010 99 99 200 99 x 0 >> -./fs_perms 100 99 99 99 500 x 0 >> -./fs_perms 002 99 99 12 100 w 0 >> -./fs_perms 020 99 99 200 99 w 0 >> -./fs_perms 200 99 99 99 500 w 0 >> -./fs_perms 004 99 99 12 100 r 0 >> -./fs_perms 040 99 99 200 99 r 0 >> -./fs_perms 400 99 99 99 500 r 0 >> -./fs_perms 000 99 99 99 99 r 1 >> -./fs_perms 000 99 99 99 99 w 1 >> -./fs_perms 000 99 99 99 99 x 1 >> -./fs_perms 010 99 99 99 500 x 1 >> -./fs_perms 100 99 99 200 99 x 1 >> -./fs_perms 020 99 99 99 500 w 1 >> -./fs_perms 200 99 99 200 99 w 1 >> -./fs_perms 040 99 99 99 500 r 1 >> -./fs_perms 400 99 99 200 99 r 1 >> +#!/bin/sh >> + >> +Code=0 >> + >> +test() >> +{ >> + arg=${1}; shift >> + res=${1} >> + >> + ./fs_perms ${arg} ${res} >> + if [ $? -ne ${res} ]; then >> + Code=$((Code + 1)) >> + fi >> +} >> + >> +test "001 99 99 12 100 x" 0 >> +test "010 99 99 200 99 x" 0 >> +test "100 99 99 99 500 x" 0 >> +test "002 99 99 12 100 w" 0 >> +test "020 99 99 200 99 w" 0 >> +test "200 99 99 99 500 w" 0 >> +test "004 99 99 12 100 r" 0 >> +test "040 99 99 200 99 r" 0 >> +test "400 99 99 99 500 r" 0 >> +test "000 99 99 99 99 r" 1 >> +test "000 99 99 99 99 w" 1 >> +test "000 99 99 99 99 x" 1 >> +test "010 99 99 99 500 x" 1 >> +test "100 99 99 200 99 x" 1 >> +test "020 99 99 99 500 w" 1 >> +test "200 99 99 200 99 w" 1 >> +test "040 99 99 99 500 r" 1 >> +test "400 99 99 200 99 r" 1 >> + >> +exit ${Code} >> --- ltp-full-20090228/runltplite.sh.orig 2009-03-19 14:50:04.000000000 +0800 >> +++ ltp-full-20090228/runltplite.sh 2009-03-19 14:51:53.000000000 +0800 >> @@ -293,6 +293,8 @@ >> fi >> fi >> #$PAN_COMMAND #Duplicated code here, because otherwise if we fail, only "PAN_COMMAND" gets output >> + # Some tests need to run inside the "bin" directory. >> + cd "${LTPROOT}/testcases/bin" >> ${LTPROOT}/pan/pan $QUIET_MODE -e -S $INSTANCES $DURATION -a $$ \ >> -n $$ $PRETTY_PRT -f ${TMP}/alltests $LOGFILE $OUTPUTFILE >> >> @@ -303,6 +305,7 @@ >> echo "INFO: pan reported some tests FAIL" >> VALUE=1 >> fi >> + cd .. >> [ ! -z "$QUIET_MODE" ] && { echo "INFO: Test end time: $(date)" ; } >> >> [ "$GENLOAD" -eq 1 ] && { killall -9 genload ; } >> >> >> ------------------------------------------------------------------------------ >> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are >> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and >> easily build your RIAs with Flex Builder, the Eclipse(TM)based development >> software that enables intelligent coding and step-through debugging. >> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com >> _______________________________________________ >> Ltp-list mailing list >> Ltp...@li... >> https://lists.sourceforge.net/lists/listinfo/ltp-list > |