busybox/testsuite
Denys Vlasenko 04f052c56d unlzma: fix a case where we could read before beginning of buffer
Testcase:

  21 01 01 00 00 00 00 00 e7 01 01 01 ef 00 df b6
  00 17 02 10 11 0f ff 00 16 00 00

Unfortunately, the bug is not reliably causing a segfault,
the behavior depends on what's in memory before the buffer.

function                                             old     new   delta
unpack_lzma_stream                                  2762    2768      +6

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-15 15:14:00 +02:00
..
basename
bunzip2
bzcat
cat
cmp
cp
cut
date
dd dd: support iflag=count_bytes 2021-04-13 21:35:57 +02:00
dirname
du
echo testsuite: check CONFIG_DESKTOP before using 'od -t' 2018-11-27 16:57:36 +01:00
expr
false
find
gunzip
gzip
hostid
hostname
id
ln
ls
md5sum
mkdir
mv
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: allow printf('%c') to output NUL, closes 13486 2021-02-02 13:51:14 +01:00
bc_add_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_add.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_arctangent_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_arctangent.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_array_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_array.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_arrays_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_arrays.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_bessel_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_bessel.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_boolean_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_boolean.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_cosine_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_cosine.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_decimal_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_decimal.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_divide_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_divide.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_exponent_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_exponent.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_log_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_log.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_misc_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_misc.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_misc1_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_misc1.bc bc: fix "...; return}" to work, disallow "return ()" 2019-01-03 23:34:36 +01:00
bc_misc2_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_misc2.bc bc: partially rewrite parser, tests pass, ^C might be broken now 2018-12-16 16:10:38 +01:00
bc_modulus_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_modulus.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_multiply_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_multiply.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_numbers1_results.txt bc: fix handling of "digits" above 9 2018-12-29 02:24:19 +01:00
bc_numbers1.bc bc: fix handling of "digits" above 9 2018-12-29 02:24:19 +01:00
bc_numbers2_results.txt bc: more fixes for unusual input bases 2018-12-29 03:08:12 +01:00
bc_numbers2.bc bc: more fixes for unusual input bases 2018-12-29 03:08:12 +01:00
bc_pi_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_pi.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_power_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_power.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_references_results.txt bc: implement pass-by-reference code from upstream 2019-01-25 16:22:15 +01:00
bc_references.bc bc: implement pass-by-reference code from upstream 2019-01-25 16:22:15 +01:00
bc_sine_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_sine.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_sqrt_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_sqrt.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_strings_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_strings.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_subtract_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_subtract.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_vars_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc_vars.bc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
bc.tests bc/dc: fix length(0) and length(0.000nnn) result 2021-02-26 14:23:13 +01:00
bunzip2.tests testsuite: fix bunzip2.tests expectations 2019-05-26 13:51:41 +02:00
busybox.tests
bz2_issue_11.bz2
bz2_issue_12.bz2
bzcat.tests testsuite/bzcat.tests: fix false positive take 2 2018-06-27 13:15:10 +02:00
cal.tests
cat.tests nl: ensure '-b n' option displays file content 2021-02-02 17:37:41 +01:00
comm.tests
cp.tests
cpio.tests randomconfig fixes 2020-06-23 21:28:19 +02:00
cryptpw.tests
cut.tests
dc_add_results.txt bc,dc: make BC_LINE_LENGTH/DC_LINE_LENGTH more compatible with GNU 2020-12-29 18:52:19 +01:00
dc_add.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_boolean_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_boolean.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_decimal_results.txt bc,dc: make BC_LINE_LENGTH/DC_LINE_LENGTH more compatible with GNU 2020-12-29 18:52:19 +01:00
dc_decimal.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_divide_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_divide.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_divmod_results.txt bc,dc: make BC_LINE_LENGTH/DC_LINE_LENGTH more compatible with GNU 2020-12-29 18:52:19 +01:00
dc_divmod.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_misc_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_misc.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_modexp_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_modexp.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_modulus_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_modulus.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_multiply_results.txt bc,dc: make BC_LINE_LENGTH/DC_LINE_LENGTH more compatible with GNU 2020-12-29 18:52:19 +01:00
dc_multiply.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_power_results.txt bc,dc: make BC_LINE_LENGTH/DC_LINE_LENGTH more compatible with GNU 2020-12-29 18:52:19 +01:00
dc_power.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_sqrt_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_sqrt.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_strings_results.txt bc: prepare for char-by-char input handling 2018-12-26 18:32:43 +01:00
dc_strings.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc_subtract_results.txt bc,dc: make BC_LINE_LENGTH/DC_LINE_LENGTH more compatible with GNU 2020-12-29 18:52:19 +01:00
dc_subtract.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dc.tests bc/dc: fix length(0) and length(0.000nnn) result 2021-02-26 14:23:13 +01:00
dcx_vars_results.txt testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
dcx_vars.dc testsuite: add bc and dc tests 2018-12-12 21:41:40 +01:00
diff.tests
expand.tests
factor.tests factor: detect squares 2020-12-22 20:24:30 +01:00
find.tests
fold.tests
grep.tests grep: for -L, exitcode 0 means files *without* matches were found, closes 13151 2020-08-15 00:39:30 +02:00
gunzip.tests
head.tests bc: rename config options 2018-12-28 13:32:04 +01:00
hexdump.tests hexdump: fix dup block comparison 2020-10-20 19:29:32 +02:00
ls.mk_uni_tests
ls.tests
makedevs.device_table.txt
makedevs.tests
md5sum.tests
mdev.tests randomconfig fixes 2020-06-24 00:27:37 +02:00
mkfs.minix.tests
mount.testroot
mount.tests randomconfig fixes 2020-12-29 16:53:11 +01:00
nl.tests nl: ensure '-b n' option displays file content 2021-02-02 17:37:41 +01:00
od.tests
parse.tests
patch.tests randomconfig fixes 2020-06-23 21:28:19 +02:00
pidof.tests testsuite/pidof.tests: fix false positive take 2 2018-06-27 14:50:00 +02:00
printf.tests printf: fix printing +-prefixed numbers 2018-10-19 15:27:42 +02:00
readlink.tests
README
runtest
rx.tests
sed.tests sed: fix /regex/,+N match triggering only once, closes 11871 2019-05-13 16:30:39 +02:00
seq.tests
sha1sum.tests
sha3sum.tests
sha256sum.tests
sha512sum.tests
sort.tests
start-stop-daemon.tests start-stop-daemon: explain -x + -a test 2021-03-09 01:12:18 +01:00
sum.tests
tail.tests
tar.tests testsuite/tar.tests: fix false positive 2018-06-27 14:35:56 +02:00
tar.utf8.tar.bz2
taskset.tests
test.tests
testing.sh
TODO
tr.tests
umlwrapper.sh
uncompress.tests
unexpand.tests sysctl: do report EACCES errors on write 2020-06-09 15:58:32 +02:00
uniq.tests
unlzma_issue_1.lzma
unlzma_issue_2.lzma
unlzma_issue_3.lzma unlzma: fix a case where we could read before beginning of buffer 2021-06-15 15:14:00 +02:00
unlzma.tests unlzma: fix a case where we could read before beginning of buffer 2021-06-15 15:14:00 +02:00
unzip_bad_lzma_1.zip
unzip_bad_lzma_2.zip unlzma: close another SEGV possibility 2018-05-25 17:03:46 +02:00
unzip.tests bc: rename config options 2018-12-28 13:32:04 +01:00
uuencode.tests
xargs.tests randomconfig fixes 2020-12-29 16:53:11 +01:00
xxd.tests xxd: fix printing of trailing spaces 2020-10-20 18:57:02 +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.