summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/bash/bash/run-ptest
Commit message (Collapse)AuthorAgeFilesLines
* bash: use setpriv, sed.sed to run ptestsRandy MacLeod2019-06-181-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The execscript test in bash fails when run with ptest-runner calling 'su', with the error: bash: cannot set terminal process group (16036): Inappropriate ioctl for device Even with ptest-runner fixed to make a child process use the right process group, 'su' still results in the warning above. Use 'setpriv' instead. 'runuser' was considered and works but depends on pam so it's ruled out. Now that all bash tests are run as a user, the patch: fix-run-coproc-run-heredoc-run-execscript-run-test-f.patch can be removed. Also to create the account 'bashtest' in the 'run-ptest' script the bash-ptest must depend on 'shadow'. Also, in 'run-ptest', ensure that the bash ptests are owned by the 'bashtest' user. Add 'sed' as a dependency for ptests since tests/exp8.sub runs: var=$'x\001y\177z' declare -p var | sed -n l and that results in: sed.busybox: "" sed.sed: declare -- var="x\001y\177z"$ This appears to be a feature that busybox sed has not implemented. With this series of changes, bash-ptest for qemux86-64 passes 79 of 81 tests. The remaining failures are: 1. run-read: # cat tests/read6.sub # test read with a timeout of 0 -- input polling # sleep with fractional seconds argument is not universal echo abcde | { sleep 0.25 2>/dev/null ; read -t 0; } echo $? read -t 0 < $0 echo $? read -t 0 echo $? <-- returns 1, when 0 is expected. I can reproduce this on my workstation but only when using ptest-runner and initially logging into the console as root. That's a little odd and seems like I need to continue to improve ptest-runner. 2. run-trap: # cat tests/trap3.sub PS4='+[$LINENO] ' trap 'echo trap: $LINENO' ERR set -x echo 1 echo 2 echo 3 | cat | false <--- error echo 4 This is a scheduler behaviour difference between the common case on a workstation and the common case in qemu. The test case does warn about the completion order not being deterministic so I plan to ignore it. >From tests/run-trap: UNIX versions number signals and schedule processes differently. If output differing only in line numbers is produced, please do not consider this a test failure. Still, it's notable and slightly odd that the common case output is different. (From OE-Core rev: 81e3f01867cf114b728ab5a417c29426c9bf8122) Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bash: run bash ptest as non-root userSakib Sajal2019-06-011-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | new-exp ptest fails as it expects non-root user. >From the failed ptest log: < new-exp.tests: the test suite should not be run as root 628c627 < argv[1] = <host(2)[5.0]# > --- > argv[1] = <host(2)[5.0]$ > FAIL: run-new-exp Many of the ptests declare that they should not be run as root and a few fail since the expected result strings are for a user shell. When ptests are run as bash_user (non-root) the glob test fails with error: run-glob-test 59,60d58 < touch: cannot touch 'a?': Permission denied < touch: cannot touch 'aa': Permission denied So ensure that the bash/ptest/tests directory is owned by the bash_user while the tests are being run and return it to root owner afterwards. (From OE-Core rev: c125609886b36048cfde6e694eee7fb47f197241) Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> Signed-off-by: Randy Macleod <randy.macleod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bash: fix run-intl ptest failedDengke Du2016-08-231-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Filter the extra white space in intl.right When the sub-test unicode2.sub of intl.tests executed, it produced compact results without extra white space, compared to intl.right, it failed. So we need to filter the extra white space in intl.right. Import this patch for intl.right from bash devel branch: http://git.savannah.gnu.org/cgit/bash.git/log/?h=devel Commit is: 85ec0778f9d778e1820fb8c0e3e996f2d1103b45 2. Change intl.right correspond to the unicode3.sub's output In sub-test unicode3.sub of intl.tests have this: printf %q "$payload" The payload variable was assigned by ASCII characters, when using '%q' format strings, it means print the associated argument shell-quoted. When the strings contain the non-alpha && non-digit && non-punctuation && non-ISO 646 character(7-bit), it would output like this: " $'...', ANSI-C style quoted string. We can check the bash source code at: http://git.savannah.gnu.org/cgit/bash.git/tree/builtins/printf.def#n557 http://git.savannah.gnu.org/cgit/bash.git/tree/lib/sh/strtrans.c#n331 So we need to change the intl.right contain the correct output of unicode3.sub. Import parts of this patch for intl.right from bash devel branch: http://git.savannah.gnu.org/cgit/bash.git/log/?h=devel Commit is: 74b8cbb41398b4453d8ba04d0cdd1b25f9dcb9e3 3. Add the sanity check for locales When run the intl.tests, we need the following locales: en_US & fr_FR & de_DE So add the locales check for the intl.tests in run-ptest. (From OE-Core rev: 640676226bb351420a0a8b2d2a3c120ae42da11e) Signed-off-by: Dengke Du <dengke.du@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bash: fix testcase run-coproc/run-execscript/run-test/run-heredoc failedHongxu Jia2015-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | Add user 'test' to fix the failure of 'the test suite should not be run as root'(run-execscript and run-test) Backport test case from git://git.sv.gnu.org/bash.git to fix run-execscript and run-heredoc Still failed cases: FAIL: run-intl FAIL: run-lastpipe FAIL: run-trap YOCTO: 5698 (From OE-Core rev: 1096140cb1d2532ecb38ac5fbbbe13d40fdaf6af) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bash: append srcdir to run-ptest scriptAjay M2015-08-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | If srcdir is not set, we get below error while running ptest for bash on qemu target, -- snip -- root@qemux86:/usr/lib/bash/ptest# ./run-ptest /bin/sh: line 0: cd: /home/ajay/Downloads/poky-fido-13.0.0/build/tmp/work/i586-poky-linux/bash/4.3-r1/bash-4.3/tests: No such file or directory Makefile:879: recipe for target 'runtest' failed make: *** [runtest] Error 1 root@qemux86:/usr/lib/bash/ptest# vi run-ptest root@qemux86:/usr/lib/bash/ptest# -- CUT -- So, set srcdir to current directory, where tests binaries exist. [YOCTO #8145] (From OE-Core rev: 00d94314679eb4345b5012389aa6252abe871a76) Signed-off-by: Ajay M <ajay.gju@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bash: upgrade to 4.3Hongxu Jia2014-03-051-0/+2
The bash-4.2-patches is obsolete. (From OE-Core rev: 31eb09a888729fcfd17d02f2a47375e10e87f79a) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>