busybox/testsuite
Rob Landley 990025a7d9 Ok, I've converted the contents of the "testing/sed" directory into a
sed.tests file.  My brain hurts now.  (Lots of boggling at sed minutiae and 
corner cases and going "why is gnu giving that output".  The behavior of N 
and n with regard to EOF are only understandable if you read the Open Group 
spec, not if you read the sed info page, by the way...)

Some of the existing sed tests are just nuts.  For example, sed-next-line is 
testing for our behavior (which is wrong), and would fail if run against gnu 
sed (which was getting it right.  Again, this was a spec-boggling moment, 
with much head scratching.  I've got to add a debug mode where the stuff 
output by the p command is a different color from the stuff output by normal 
end of script printing (when not suppressed by -n).)

As for sed-handles-unsatisifed-backrefs: what is this test trying to _do_?  I 
ran it against gnu sed and got an error message, and this behavior sounds 
perfectly reasonable.  (It _is_ an unsatisfied backref.)  The fact we 
currently ignore this case (and treat \1 as an empty string) isn't really 
behavior we should have a test depend on for success.

The remaining one is sed-aic-commands, which is long and complicated.  I'm
trying to figure out if I should chop this into a number of smaller tests, or
if having one big "does-many-things" test is a good idea.

In any case, the _next_ step is to go through the Open Group standard and
make tests for every case not yet covered.  (And there are plenty.  There
are few comments in the file already.)  Plus I have notes about corner
cases from development that I need to collate and put into here.  This file
is maybe the first 1/3 of a truly comprehensive sed test.

Rob
2005-11-10 06:26:40 +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
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
date Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
dd
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 egor duda writes: 2004-10-08 07:46:08 +00:00
md5sum New. 2001-11-19 15:13:12 +00:00
mkdir
msh
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
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
touch New. 2001-12-07 21:27:57 +00:00
tr Kill off the old 'tests' stuff. Write a ton of new tests for the 2004-04-06 11:10:30 +00:00
true
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
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
busybox.tests Fix the test suite so that individual *.tests files can be run ala 2005-11-07 08:50:53 +00:00
egrep.tests Fix the test suite so that individual *.tests files can be run ala 2005-11-07 08:50:53 +00:00
grep.tests Fix the test suite so that individual *.tests files can be run ala 2005-11-07 08:50:53 +00:00
pidof.tests Fix the test suite so that individual *.tests files can be run ala 2005-11-07 08:50:53 +00:00
README * testsuite/README: Change "UNSUPPORTED" tag to "FEATURE". 2002-02-19 23:43:08 +00:00
runtest Fix the test suite so that individual *.tests files can be run ala 2005-11-07 08:50:53 +00:00
sed.tests Ok, I've converted the contents of the "testing/sed" directory into a 2005-11-10 06:26:40 +00:00
sort.tests Fix the test suite so that individual *.tests files can be run ala 2005-11-07 08:50:53 +00:00
testing.sh Fix the test suite so that individual *.tests files can be run ala 2005-11-07 08:50:53 +00:00
TODO It was a bit out of date. 2005-11-07 09:06:34 +00:00
uniq.tests Fix the test suite so that individual *.tests files can be run ala 2005-11-07 08:50:53 +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.