busybox/testsuite
Bernhard Reutner-Fischer 89a22ea5d9 make the testsuite a little less brittle:
- 'function fn_name\n{' breaks on older FreeBSD default shells, so use the more
  widely supported 'fn_name () {'. This needs more fixing..
- test for integers ought to use the proper operators
- test for strings ought to use quoting of the strings to be fair to strange
  implementations of test(1)
- make sure not to ignore return-codes != 0 from commands; Some shells exit
  immediately on this (much like explicitely requesting set -e in e.g. bash)

TODO:
*) Some older shells do not allow a space after the test-condition in an "if"
statement. This doesn't work:
if [ $status -ne 0 ] ; then
as opposed to this:
if [ $status -ne 0 ]; then
or this
if [ $status -ne 0 ]
then

*) strict spacing between commands. In some shells you have to say:
foo ; bar ; baz
The affected shells barf on stuff like ommitting the space, so this doesn't
work:
foo; bar   ;baz

*) $() vs. ``
The former isn't really portable as opposed to the latter.

*) fix frong assumption that the testsuite is run from the source-dir.
This is a complete misconception and renders the testsuite completely useless.


That said, i note that IMO a test-harness ought to do it's best to work in
a wide variety of environments, everything else defeats it's purpose.
2006-05-25 13:24:02 +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 Add two fundamental tests for copying directories 2004-04-18 13:35:56 +00:00
cut Merge test suite. 2001-10-30 23:11:20 +00:00
date Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
dd Merge test suite. 2001-10-30 23:11:20 +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 egor duda writes: 2004-10-08 07:46:08 +00:00
echo Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
expr Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +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 egor duda writes: 2004-10-08 07:46:08 +00:00
tar Minor tar test update 2004-04-06 11:34:02 +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 Patch from Jean Wolter: 2006-04-19 22:22:06 +00:00
true Merge test suite. 2001-10-30 23:11:20 +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
uuencode Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
wc Merge test suite. 2001-10-30 23:11:20 +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 detect more obsolete headers 2006-04-29 04:44:08 +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
grep.tests Redo test suite to be able to test more than one command at a time. Eliminate 2006-03-16 15:20:45 +00:00
mount.testroot My mount testsuite. Not automatically run at the moment, need to figure out 2006-03-18 03:00:22 +00:00
pidof.tests Redo test suite to be able to test more than one command at a time. Eliminate 2006-03-16 15:20:45 +00:00
readlink.tests make sure script is executable 2006-05-06 05:27:19 +00:00
README * testsuite/README: Change "UNSUPPORTED" tag to "FEATURE". 2002-02-19 23:43:08 +00:00
runtest make the testsuite a little less brittle: 2006-05-25 13:24:02 +00:00
sed.tests Redo test suite to be able to test more than one command at a time. Eliminate 2006-03-16 15:20:45 +00:00
seq.tests Minor tweaks: remove traces of old $COMMAND environment variable. 2006-05-02 21:39:04 +00:00
sort.tests Redo test suite to be able to test more than one command at a time. Eliminate 2006-03-16 15:20:45 +00:00
testing.sh make the testsuite a little less brittle: 2006-05-25 13:24:02 +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 Redo test suite to be able to test more than one command at a time. Eliminate 2006-03-16 15:20:45 +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, specify them as parameters to runtest.

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.