busybox/testsuite
Denis Vlasenko 084266ed52 fix several problems with config parser:
a bug where it underflows the string
 a bug where it never frees parser_t struct
make read_config() return 0 if parser is NULL,
 make config_close() accept and ignore NULL parser -
 eliminates many if() blocks
reverse the sense of parser bit flags - negative flags
 are harder to grok.
hexdump: revert the change to use config parser, it is BIGGER
 and also requires additional quirks in parser
*: explicitly use PARSER_NORMAL instead of 0

function                                             old     new   delta
login_main                                          1575    1596     +21
config_close                                          18      29     +11
bbunpack                                             383     391      +8
qgravechar                                           106     109      +3
rtnl_tab_initialize                                  121     117      -4
expand                                              1697    1693      -4
man_main                                             717     712      -5
nameif_main                                          674     668      -6
hexdump_main                                         597     591      -6
read_config                                          217     209      -8
dnsd_main                                           1478    1470      -8
sysctl_main                                          203     189     -14
config_open2                                          44      25     -19
make_device                                         1177    1141     -36
config_read                                          597     549     -48
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/11 up/down: 43/-158)         Total: -115 bytes
2008-07-26 23:08:31 +00:00
..
basename Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
bunzip2 * archival/bunzip2.c (bunzip2_main): Do not remove files if writing to standard 2002-04-15 15:01:37 +00:00
cat Merge test suite. 2001-10-30 23:11:20 +00:00
cmp Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
cp cp: fix "cp -RL" to create regular files even if src is a symlink 2008-04-27 22:06:24 +00:00
cut Merge test suite. 2001-10-30 23:11:20 +00:00
date date: better version of previous commit; + fix testsuite 2008-04-28 00:25:22 +00:00
dd dd: add testsuite entry for write errors 2007-12-02 01:43:18 +00:00
dirname Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
du testsuite: fix du testsuite to not use changing directories 2008-04-23 07:02:02 +00:00
echo echo: fix echo -e -n "msg\n\0" 2008-04-30 00:39:22 +00:00
expand expand, unexpand: new applets from Tito <farmatito@tiscali.it> 2007-08-13 14:10:24 +00:00
expr expr: fix comparisons 'a < b' where we were overflowing a-b 2008-04-02 20:24:09 +00:00
false * cmp/cmp-detects-difference: Simplify return code negation. 2002-01-02 20:45:42 +00:00
find Update status of tests which should pass 2003-11-20 09:57:44 +00:00
gunzip * testsuite/bunzip2/bunzip2-reads-from-standard-input: Remove -c flags. 2002-03-27 22:48:39 +00:00
gzip * archival/gzip.c (ifname, ofname): Delete. 2002-02-05 22:31:48 +00:00
head egor duda writes: 2004-10-08 07:46:08 +00:00
hostid Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
hostname Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
id Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
ln Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
ls use LC_ALL, not LANG, for forcing C 2006-01-25 22:46:25 +00:00
md5sum New. 2001-11-19 15:13:12 +00:00
mkdir Merge test suite. 2001-10-30 23:11:20 +00:00
msh Merge test suite. 2001-10-30 23:11:20 +00:00
mv Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
pwd Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
rm New. 2001-10-31 16:36:23 +00:00
rmdir Merge test suite. 2001-10-30 23:11:20 +00:00
strings Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
tail testsuite: uniformly use $ECHO with -n -e 2008-07-11 21:41:14 +00:00
tar tar: fix handling of tarballs with symlinks with size field != 0 2008-07-20 17:10:43 +00:00
tee Merge test suite. 2001-10-30 23:11:20 +00:00
touch New. 2001-12-07 21:27:57 +00:00
tr - fix bug where we did not reject invalid classes like '[[:alpha' 2007-03-30 14:43:27 +00:00
true Merge test suite. 2001-10-30 23:11:20 +00:00
unexpand expand, unexpand: new applets from Tito <farmatito@tiscali.it> 2007-08-13 14:10:24 +00:00
uptime Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
wc wc can emit unpredictable amount of whitespace 2007-01-28 16:59:30 +00:00
wget * networking/wget.c (parse_url): Allocate a string for the empty path. 2002-03-19 15:22:42 +00:00
which Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
xargs egor duda writes: 2004-10-08 07:46:08 +00:00
all_sourcecode.tests clean up TODO file. No real code changes. 2008-03-17 09:05:21 +00:00
awk_t1.tar.bz2 awk: fix a case with multiple -f options. simplify -f file reading. 2008-07-01 01:57:36 +00:00
awk.tests comm: almost total rewrite; add testsuite 2008-07-15 06:45:14 +00:00
bunzip2.tests testsuite: uniformly use $ECHO with -n -e 2008-07-11 21:41:14 +00:00
busybox.tests move source code tests out into a sep file rather than just disabling/breaking them 2006-04-01 01:36:13 +00:00
bzcat.tests testsuite: uniformly use $ECHO with -n -e 2008-07-11 21:41:14 +00:00
comm.tests comm: almost total rewrite; add testsuite 2008-07-15 06:45:14 +00:00
cpio.tests cpio: testsuite for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=466771 2008-07-11 21:43:11 +00:00
cut.tests fix vda's testsuite bogons, part 2 2007-11-26 07:23:27 +00:00
diff.tests diff: add testsuite entry for it 2008-03-24 20:33:47 +00:00
grep.tests grep: make "-f -" work (+ testsuite) 2008-06-07 05:19:31 +00:00
gunzip.tests bunzip2/gunzip/uncompress/unlzma: merge into common code - 2007-03-07 22:02:23 +00:00
mdev.tests mdev: do not complain if mdev.conf does not exist; 2008-07-26 18:35:10 +00:00
mkfs.minix.tests mkfs.minix: add testsuite; disable code which makes images variable 2007-12-02 08:55:34 +00:00
mount.testroot whitespace cleanup 2006-09-17 16:28:10 +00:00
mount.tests testsuite: uniformly use $ECHO with -n -e 2008-07-11 21:41:14 +00:00
od.tests od: fix testsuite 2008-04-14 19:56:46 +00:00
parse.tests fix several problems with config parser: 2008-07-26 23:08:31 +00:00
patch.tests patch: add support for -R. ~ +110 byte. By Pascal Bellard <pascal.bellard AT ads-lu.com> 2008-03-26 13:32:30 +00:00
pidof.tests which: fix testsuite failure 2007-11-25 04:54:13 +00:00
printf.tests printf: do not print garbage on "%Ld". closes bug 4214. 2008-07-18 18:41:55 +00:00
readlink.tests whitespace cleanup 2006-09-17 16:28:10 +00:00
README sort: -z outputs NUL terminated lines. Closes bug 1591. 2008-02-13 14:30:33 +00:00
runtest testsuite: uniformly use $ECHO with -n -e 2008-07-11 21:41:14 +00:00
sed.tests testsuite: uniformly use $ECHO with -n -e 2008-07-11 21:41:14 +00:00
seq.tests Minor tweaks: remove traces of old $COMMAND environment variable. 2006-05-02 21:39:04 +00:00
sort.tests sort: -z outputs NUL terminated lines. Closes bug 1591. 2008-02-13 14:30:33 +00:00
start-stop-daemon.tests ssd: do not stat -x EXECUTABLE, it is not needed anymore 2008-07-01 10:00:46 +00:00
sum.tests - add a very few simple test for sum. 2007-01-27 22:07:54 +00:00
taskset.tests taskset: fix false failure in testsuite 2008-03-22 17:46:16 +00:00
test.tests test: fix parser to prefer binop over unop, as coreutils does. 2008-07-19 08:15:13 +00:00
testing.sh testsuite: uniformly use $ECHO with -n -e 2008-07-11 21:41:14 +00:00
TODO It was a bit out of date. 2005-11-07 09:06:34 +00:00
umlwrapper.sh My mount testsuite. Not automatically run at the moment, need to figure out 2006-03-18 03:00:22 +00:00
uniq.tests uniq: support -w. closes bug 3094. 2008-05-03 07:21:27 +00:00
unzip.tests update Glenn McGrath's email address 2007-09-21 13:16:32 +00:00
uuencode.tests uuencode: common implementation for wget and uuencode (closing bug 694) 2006-09-03 15:49:40 +00: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>...

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.