From 990025a7d971bbbdd982d2d070d3e47628d0fac0 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 10 Nov 2005 06:26:40 +0000 Subject: 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 --- testsuite/sed/sed-accepts-blanks-before-command | 1 - testsuite/sed/sed-aic-commands | 134 --------------------- .../sed/sed-append-hold-space-to-pattern-space | 13 -- testsuite/sed/sed-append-next-line | 19 --- testsuite/sed/sed-branch | 1 - testsuite/sed/sed-branch-conditional | 15 --- testsuite/sed/sed-branch-conditional-inverted | 14 --- testsuite/sed/sed-branch-conditional2 | 11 -- testsuite/sed/sed-branch-no-label | 1 - testsuite/sed/sed-chains-substs | 1 - testsuite/sed/sed-chains-substs2 | 1 - .../sed/sed-does-not-substitute-in-deleted-line | 2 - testsuite/sed/sed-handles-embedded-slashes | 1 - testsuite/sed/sed-handles-empty-lines | 1 - testsuite/sed/sed-handles-unsatisfied-backrefs | 6 - testsuite/sed/sed-next-line | 12 -- .../sed/sed-prints-line-once-for-multiple-substs | 4 - testsuite/sed/sed-recurses-properly | 1 - testsuite/sed/sed-regex-match-newline | 10 -- .../sed/sed-splits-edit-commands-on-command-line | 9 -- testsuite/sed/sed-subst-subprint | 9 -- testsuite/sed/sed-write-to-stdout | 10 -- 22 files changed, 276 deletions(-) delete mode 100644 testsuite/sed/sed-accepts-blanks-before-command delete mode 100644 testsuite/sed/sed-aic-commands delete mode 100644 testsuite/sed/sed-append-hold-space-to-pattern-space delete mode 100644 testsuite/sed/sed-append-next-line delete mode 100644 testsuite/sed/sed-branch delete mode 100644 testsuite/sed/sed-branch-conditional delete mode 100755 testsuite/sed/sed-branch-conditional-inverted delete mode 100644 testsuite/sed/sed-branch-conditional2 delete mode 100644 testsuite/sed/sed-branch-no-label delete mode 100644 testsuite/sed/sed-chains-substs delete mode 100644 testsuite/sed/sed-chains-substs2 delete mode 100644 testsuite/sed/sed-does-not-substitute-in-deleted-line delete mode 100644 testsuite/sed/sed-handles-embedded-slashes delete mode 100644 testsuite/sed/sed-handles-empty-lines delete mode 100644 testsuite/sed/sed-handles-unsatisfied-backrefs delete mode 100644 testsuite/sed/sed-next-line delete mode 100644 testsuite/sed/sed-prints-line-once-for-multiple-substs delete mode 100644 testsuite/sed/sed-recurses-properly delete mode 100644 testsuite/sed/sed-regex-match-newline delete mode 100644 testsuite/sed/sed-splits-edit-commands-on-command-line delete mode 100644 testsuite/sed/sed-subst-subprint delete mode 100644 testsuite/sed/sed-write-to-stdout (limited to 'testsuite/sed') diff --git a/testsuite/sed/sed-accepts-blanks-before-command b/testsuite/sed/sed-accepts-blanks-before-command deleted file mode 100644 index 9597c2f8b..000000000 --- a/testsuite/sed/sed-accepts-blanks-before-command +++ /dev/null @@ -1 +0,0 @@ -busybox sed -e '1 d' input <output <output <output <output <output <output <foo -cmp foo /dev/null diff --git a/testsuite/sed/sed-handles-embedded-slashes b/testsuite/sed/sed-handles-embedded-slashes deleted file mode 100644 index cc287613d..000000000 --- a/testsuite/sed/sed-handles-embedded-slashes +++ /dev/null @@ -1 +0,0 @@ -test "$(echo fu/bar | busybox sed -e 's/[/]//')" = fubar diff --git a/testsuite/sed/sed-handles-empty-lines b/testsuite/sed/sed-handles-empty-lines deleted file mode 100644 index 2bb8f045a..000000000 --- a/testsuite/sed/sed-handles-empty-lines +++ /dev/null @@ -1 +0,0 @@ -test `echo | busybox sed -e 's/$/@/'` = @ diff --git a/testsuite/sed/sed-handles-unsatisfied-backrefs b/testsuite/sed/sed-handles-unsatisfied-backrefs deleted file mode 100644 index 61bff8837..000000000 --- a/testsuite/sed/sed-handles-unsatisfied-backrefs +++ /dev/null @@ -1,6 +0,0 @@ -busybox sed -e 's/.*root=/\1/' >output <output <output <output < output -cmp output - <output <output <