Test 8.16 in sed.test tests the ability of a sed to handle an empty
regular expression as the first argument to a substitute command. If used to test a sed which (erroneously) evaluates this at translation time rather than at execution time, the bugged sed is put into an infinite loop. This mode of failure seems excessive. Such a failing sed is the Free Software Foundation's sed 3.02. The specific test was also not being executed for the BSD sed. Both problems are now fixed. PR: misc/25585 Submitted by: Walter Briscoe <w.briscoe@ponl.com> Approved by: schweikh (mentor) MFC after: 2 weeks
This commit is contained in:
parent
8db0b37247
commit
37c94e1d78
@ -34,6 +34,8 @@
|
||||
#
|
||||
# @(#)sed.test 8.1 (Berkeley) 6/6/93
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# sed Regression Tests
|
||||
#
|
||||
@ -430,11 +432,7 @@ test_print()
|
||||
</dev/null >lines3
|
||||
# GNU and SunOS sed behave differently here
|
||||
mark '7.1'
|
||||
if [ $BSD -eq 1 ] ; then
|
||||
echo 'BSD sed drops core on this one; TEST SKIPPED'
|
||||
else
|
||||
$SED -n l lines3
|
||||
fi
|
||||
$SED -n l lines3
|
||||
mark '7.2' ; $SED -e '/l2_/=' lines1 lines2
|
||||
rm -f lines4
|
||||
mark '7.3' ; $SED -e '3,12w lines4' lines1
|
||||
@ -501,12 +499,22 @@ u2/g' lines1
|
||||
fi
|
||||
mark '8.15' ; $SED -e '1N;2y/\n/X/' lines1
|
||||
mark '8.16'
|
||||
if [ $BSD -eq 1 ] ; then
|
||||
echo 'BSD sed does not handle branch defined REs'
|
||||
else
|
||||
echo 'eeefff' | $SED -e 'p' -e 's/e/X/p' -e ':x' \
|
||||
-e 's//Y/p' -e '/f/bx'
|
||||
fi
|
||||
echo 'eeefff' | $SED -e '
|
||||
p
|
||||
s/e/X/p
|
||||
:x
|
||||
s//Y/p
|
||||
# Establish limit counter in the hold space
|
||||
# GNU sed version 3.02 enters into an infinite loop here
|
||||
x
|
||||
/.\{10\}/ {
|
||||
s/.*/ERROR/
|
||||
b
|
||||
}
|
||||
s/.*/&./
|
||||
x
|
||||
/f/bx
|
||||
'
|
||||
}
|
||||
|
||||
test_error()
|
||||
|
@ -34,6 +34,8 @@
|
||||
#
|
||||
# @(#)sed.test 8.1 (Berkeley) 6/6/93
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# sed Regression Tests
|
||||
#
|
||||
@ -430,11 +432,7 @@ test_print()
|
||||
</dev/null >lines3
|
||||
# GNU and SunOS sed behave differently here
|
||||
mark '7.1'
|
||||
if [ $BSD -eq 1 ] ; then
|
||||
echo 'BSD sed drops core on this one; TEST SKIPPED'
|
||||
else
|
||||
$SED -n l lines3
|
||||
fi
|
||||
$SED -n l lines3
|
||||
mark '7.2' ; $SED -e '/l2_/=' lines1 lines2
|
||||
rm -f lines4
|
||||
mark '7.3' ; $SED -e '3,12w lines4' lines1
|
||||
@ -501,12 +499,22 @@ u2/g' lines1
|
||||
fi
|
||||
mark '8.15' ; $SED -e '1N;2y/\n/X/' lines1
|
||||
mark '8.16'
|
||||
if [ $BSD -eq 1 ] ; then
|
||||
echo 'BSD sed does not handle branch defined REs'
|
||||
else
|
||||
echo 'eeefff' | $SED -e 'p' -e 's/e/X/p' -e ':x' \
|
||||
-e 's//Y/p' -e '/f/bx'
|
||||
fi
|
||||
echo 'eeefff' | $SED -e '
|
||||
p
|
||||
s/e/X/p
|
||||
:x
|
||||
s//Y/p
|
||||
# Establish limit counter in the hold space
|
||||
# GNU sed version 3.02 enters into an infinite loop here
|
||||
x
|
||||
/.\{10\}/ {
|
||||
s/.*/ERROR/
|
||||
b
|
||||
}
|
||||
s/.*/&./
|
||||
x
|
||||
/f/bx
|
||||
'
|
||||
}
|
||||
|
||||
test_error()
|
||||
|
@ -34,6 +34,8 @@
|
||||
#
|
||||
# @(#)sed.test 8.1 (Berkeley) 6/6/93
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# sed Regression Tests
|
||||
#
|
||||
@ -430,11 +432,7 @@ test_print()
|
||||
</dev/null >lines3
|
||||
# GNU and SunOS sed behave differently here
|
||||
mark '7.1'
|
||||
if [ $BSD -eq 1 ] ; then
|
||||
echo 'BSD sed drops core on this one; TEST SKIPPED'
|
||||
else
|
||||
$SED -n l lines3
|
||||
fi
|
||||
$SED -n l lines3
|
||||
mark '7.2' ; $SED -e '/l2_/=' lines1 lines2
|
||||
rm -f lines4
|
||||
mark '7.3' ; $SED -e '3,12w lines4' lines1
|
||||
@ -501,12 +499,22 @@ u2/g' lines1
|
||||
fi
|
||||
mark '8.15' ; $SED -e '1N;2y/\n/X/' lines1
|
||||
mark '8.16'
|
||||
if [ $BSD -eq 1 ] ; then
|
||||
echo 'BSD sed does not handle branch defined REs'
|
||||
else
|
||||
echo 'eeefff' | $SED -e 'p' -e 's/e/X/p' -e ':x' \
|
||||
-e 's//Y/p' -e '/f/bx'
|
||||
fi
|
||||
echo 'eeefff' | $SED -e '
|
||||
p
|
||||
s/e/X/p
|
||||
:x
|
||||
s//Y/p
|
||||
# Establish limit counter in the hold space
|
||||
# GNU sed version 3.02 enters into an infinite loop here
|
||||
x
|
||||
/.\{10\}/ {
|
||||
s/.*/ERROR/
|
||||
b
|
||||
}
|
||||
s/.*/&./
|
||||
x
|
||||
/f/bx
|
||||
'
|
||||
}
|
||||
|
||||
test_error()
|
||||
|
Loading…
x
Reference in New Issue
Block a user