busybox/testsuite
Ron Yorston 94eb1c4dc6 libbb: better coreutils compatibility for realpath
Add some tests which coreutils realpath pass but BusyBox realpath
fails (bar one).  Adjust xmalloc_realpath_coreutils() so the tests
pass:

- Expand symbolic links before testing whether the last path component
  exists.

- When the link target is a relative path canonicalize it by passing
  it through xmalloc_realpath_coreutils() as already happens for
  absolute paths.

- Ignore trailing slashes when finding the last path component and
  correctly handle the case where the only slash is at the start of
  the path.  This requires ignoring superfluous leading slashes.

- Undo all changes to the path so error messages from the caller show
  the original filename.

function                                             old     new   delta
xmalloc_realpath_coreutils                           214     313     +99

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-10-09 01:47:12 +02:00
..
basename
bunzip2
bzcat
cat
cmp
cp
cut
date date,touch: allow timezone offsets in dates 2021-09-17 00:11:30 +02:00
dd dd: fix testsuite 2021-08-15 23:01:33 +02:00
dirname
du
echo
expr
false
find
gunzip
gzip
hostid
hostname
id
ln
ls
md5sum
mkdir
mv cp,mv: fix -t DIR option 2021-06-25 00:23:29 +02:00
paste
pwd
rm
rmdir
strings
tail
tar
tee
touch
tr
true
uptime
wc
wget
which
xargs
all_sourcecode.tests
ar.tests
ash.tests
awk_t1.tar.bz2
awk.tests awk: fix printf %% 2021-09-05 03:42:51 +02:00
bc_add_results.txt
bc_add.bc
bc_arctangent_results.txt
bc_arctangent.bc
bc_array_results.txt
bc_array.bc
bc_arrays_results.txt
bc_arrays.bc
bc_bessel_results.txt
bc_bessel.bc
bc_boolean_results.txt
bc_boolean.bc
bc_cosine_results.txt
bc_cosine.bc
bc_decimal_results.txt
bc_decimal.bc
bc_divide_results.txt
bc_divide.bc
bc_exponent_results.txt
bc_exponent.bc
bc_log_results.txt
bc_log.bc
bc_misc1_results.txt
bc_misc1.bc
bc_misc2_results.txt
bc_misc2.bc
bc_misc_results.txt
bc_misc.bc
bc_modulus_results.txt
bc_modulus.bc
bc_multiply_results.txt
bc_multiply.bc
bc_numbers1_results.txt
bc_numbers1.bc
bc_numbers2_results.txt
bc_numbers2.bc
bc_pi_results.txt
bc_pi.bc
bc_power_results.txt
bc_power.bc
bc_references_results.txt
bc_references.bc
bc_sine_results.txt
bc_sine.bc
bc_sqrt_results.txt
bc_sqrt.bc
bc_strings_results.txt
bc_strings.bc
bc_subtract_results.txt
bc_subtract.bc
bc_vars_results.txt
bc_vars.bc
bc.tests
bunzip2.tests
busybox.tests
bz2_issue_11.bz2
bz2_issue_12.bz2
bzcat.tests
cal.tests
cat.tests
comm.tests
cp.tests
cpio.tests
cryptpw.tests
cut.tests cut: fix testsuite 2021-08-15 20:15:42 +02:00
dc_add_results.txt
dc_add.dc
dc_boolean_results.txt
dc_boolean.dc
dc_decimal_results.txt
dc_decimal.dc
dc_divide_results.txt
dc_divide.dc
dc_divmod_results.txt
dc_divmod.dc
dc_misc_results.txt
dc_misc.dc
dc_modexp_results.txt
dc_modexp.dc
dc_modulus_results.txt
dc_modulus.dc
dc_multiply_results.txt
dc_multiply.dc
dc_power_results.txt
dc_power.dc
dc_sqrt_results.txt
dc_sqrt.dc
dc_strings_results.txt
dc_strings.dc
dc_subtract_results.txt
dc_subtract.dc
dc.tests
dcx_vars_results.txt
dcx_vars.dc
diff.tests
expand.tests
factor.tests
find.tests
fold.tests
grep.tests
gunzip.tests
head.tests
hexdump.tests
ls.mk_uni_tests
ls.tests
makedevs.device_table.txt
makedevs.tests
md5sum.tests
mdev.tests
mkfs.minix.tests
mount.testroot
mount.tests
nl.tests
od.tests
parse.tests
patch.tests
pidof.tests
printf.tests awk: fix printf %% 2021-09-05 03:42:51 +02:00
readlink.tests
README
realpath.tests libbb: better coreutils compatibility for realpath 2021-10-09 01:47:12 +02:00
rev.tests rev: correct output for long input lines 2021-08-22 00:08:18 +02:00
runtest
rx.tests
sed.tests
seq.tests
sha1sum.tests
sha3sum.tests
sha256sum.tests
sha512sum.tests
sort.tests
start-stop-daemon.tests
sum.tests
tail.tests
tar.tests tar: fix testsuite 2021-08-16 00:48:50 +02:00
tar.utf8.tar.bz2
taskset.tests
test.tests
testing.sh
TODO
tr.tests
umlwrapper.sh
uncompress.tests
unexpand.tests
uniq.tests
unlzma_issue_1.lzma
unlzma_issue_2.lzma
unlzma_issue_3.lzma
unlzma.tests
unzip_bad_lzma_1.zip
unzip_bad_lzma_2.zip
unzip.tests
uuencode.tests
xargs.tests
xxd.tests xxd: fix -p -r, closes 13881 2021-10-08 23:03:54 +02:00

To run the test suite, change to this directory and run "./runtest".  It will
run all of the test cases, and list those with unexpected outcomes.  Adding the
-v option will cause it to show expected outcomes as well.  To only run the test
cases for particular applets:

./runtest <applet1> <applet2>...

Set SKIP_KNOWN_BUGS environment variable to any non-empty value
to exclude tests which are known to fail.

Set SKIP_INTERNET_TESTS to exclude tests which require working
internet connection.


Common causes of false positives:

For busybox built against uclibc, /etc/TZ does not exist or does not match
host system timezone setting. For glibc based host systems, timezone settings
are in /etc/localtime.

LANG and LC_xxx environment variables set to non-C locale.


Developer's notes:

The test cases for an applet reside in the subdirectory of the applet name.
The name of the test case should be the assertion that is tested.
The test case should be a shell fragment that returns successfully
if the test case passes, and unsuccessfully otherwise.

If the test case relies on a certain feature, it should include the string
"FEATURE: " followed by the name of the feature in a comment.  If it is always
expected to fail, it should include the string "XFAIL" in a comment.


For the entire testsuite, the copyright is as follows:

Copyright (C) 2001, 2002  Matt Kraai

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.