mirror of
https://github.com/sheumann/hush.git
synced 2024-08-14 11:28:58 +00:00
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 |
||
---|---|---|
.. | ||
basename | ||
bunzip2 | ||
cat | ||
cmp | ||
cp | ||
cut | ||
date | ||
dd | ||
dirname | ||
du | ||
echo | ||
expr | ||
false | ||
find | ||
gunzip | ||
gzip | ||
head | ||
hostid | ||
hostname | ||
id | ||
ln | ||
ls | ||
md5sum | ||
mkdir | ||
msh | ||
mv | ||
pwd | ||
rm | ||
rmdir | ||
strings | ||
tail | ||
tar | ||
tee | ||
touch | ||
tr | ||
true | ||
uptime | ||
uuencode | ||
wc | ||
wget | ||
which | ||
xargs | ||
busybox.tests | ||
egrep.tests | ||
grep.tests | ||
pidof.tests | ||
README | ||
runtest | ||
sed.tests | ||
sort.tests | ||
testing.sh | ||
TODO | ||
uniq.tests |
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.