mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-11-15 00:05:20 +00:00
950 lines
30 KiB
Plaintext
950 lines
30 KiB
Plaintext
|
|
# -------------------------------------------------------------------
|
|
# sed Regression Tests
|
|
# Converted to GNO's gsh format from FreeBSD's sed.test (sh format)
|
|
#
|
|
# The following files are created in /tmp/:
|
|
# lines[1-4], script1, script2
|
|
# -------------------------------------------------------------------
|
|
|
|
# Location of sed command to be tested
|
|
set SED=/src/gno/usr.bin/sed/sed
|
|
|
|
# GNO's rm command is implemented under the cp command
|
|
set RM="cp -p rm"
|
|
|
|
# Use either cmp or diff for comparing files
|
|
set compare="cmp"
|
|
|
|
# Create directory under /tmp to hold results
|
|
$RM -rf /tmp/out >& /tmp/err.list
|
|
mkdir /tmp/out
|
|
|
|
echo "l1_1" > /tmp/lines1.0
|
|
echo "l1_2" >> /tmp/lines1.0
|
|
echo "l1_3" >> /tmp/lines1.0
|
|
echo "l1_4" >> /tmp/lines1.0
|
|
echo "l1_5" >> /tmp/lines1.0
|
|
echo "l1_6" >> /tmp/lines1.0
|
|
echo "l1_7" >> /tmp/lines1.0
|
|
echo "l1_8" >> /tmp/lines1.0
|
|
echo "l1_9" >> /tmp/lines1.0
|
|
echo "l1_10" >> /tmp/lines1.0
|
|
echo "l1_11" >> /tmp/lines1.0
|
|
echo "l1_12" >> /tmp/lines1.0
|
|
echo "l1_13" >> /tmp/lines1.0
|
|
echo "l1_14" >> /tmp/lines1.0
|
|
# NOTE: gsh's echo appends an extra blank at end-of-line.
|
|
# Use sed to remove it.
|
|
$SED -e 's/ $//' /tmp/lines1.0 > /tmp/lines1
|
|
$RM -f /tmp/lines1.0
|
|
|
|
echo "l2_1" > /tmp/lines2.0
|
|
echo "l2_2" >> /tmp/lines2.0
|
|
echo "l2_3" >> /tmp/lines2.0
|
|
echo "l2_4" >> /tmp/lines2.0
|
|
echo "l2_5" >> /tmp/lines2.0
|
|
echo "l2_6" >> /tmp/lines2.0
|
|
echo "l2_7" >> /tmp/lines2.0
|
|
echo "l2_8" >> /tmp/lines2.0
|
|
echo "l2_9" >> /tmp/lines2.0
|
|
$SED -e 's/ $//' /tmp/lines2.0 > /tmp/lines2
|
|
$RM -f /tmp/lines2.0
|
|
|
|
# Create an empty /tmp/null to simulate /dev/null
|
|
echo "" | $SED -n > /tmp/null
|
|
|
|
# #### test_args
|
|
set tnum='1.1'
|
|
echo "sed test $tnum"
|
|
echo "Testing argument parsing"
|
|
echo "First type"
|
|
$SED 's/^/e1_/p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.2'
|
|
echo "sed test $tnum"
|
|
$SED -n 's/^/e1_/p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.3'
|
|
echo "sed test $tnum"
|
|
$SED 's/^/e1_/p' </tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.4'
|
|
echo "sed test $tnum"
|
|
$SED -n 's/^/e1_/p' </tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# echo Second type
|
|
# set tnum='1.4.1'
|
|
# $SED -e '' </tmp/lines1
|
|
echo 's/^/s1_/p' >/tmp/script1
|
|
echo 's/^/s2_/p' >/tmp/script2
|
|
set tnum='1.5'
|
|
echo "sed test $tnum"
|
|
$SED -f /tmp/script1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.6'
|
|
echo "sed test $tnum"
|
|
$SED -f /tmp/script1 </tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.7'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/^/e1_/p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.8'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/^/e1_/p' </tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.9'
|
|
echo "sed test $tnum"
|
|
$SED -n -f /tmp/script1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.10'
|
|
echo "sed test $tnum"
|
|
$SED -n -f /tmp/script1 </tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.11'
|
|
echo "sed test $tnum"
|
|
$SED -n -e 's/^/e1_/p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.12'
|
|
echo "sed test $tnum"
|
|
$SED -n -e 's/^/e1_/p' </tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.13'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/^/e1_/p' -e 's/^/e2_/p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.14'
|
|
echo "sed test $tnum"
|
|
$SED -f /tmp/script1 -f /tmp/script2 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.15'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/^/e1_/p' -f /tmp/script1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='1.16'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/^/e1_/p' /tmp/lines1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# POSIX D11.2:11251
|
|
set tnum='1.17'
|
|
echo "sed test $tnum"
|
|
$SED p </tmp/lines1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
echo '#n' > /tmp/sed.cmd
|
|
echo '# A comment' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
echo 'p' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
set tnum='1.18'
|
|
echo "sed test $tnum"
|
|
$SED -f /tmp/sed.cmd1 </tmp/lines1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
|
|
# #### test_addr
|
|
echo "Testing address ranges"
|
|
set tnum='2.1'
|
|
echo "sed test $tnum"
|
|
$SED -n -e '4p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.2'
|
|
echo "sed test $tnum"
|
|
$SED -n -e '20p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.3'
|
|
echo "sed test $tnum"
|
|
$SED -n -e '$p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.4'
|
|
echo "sed test $tnum"
|
|
$SED -n -e '$p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.5'
|
|
echo "sed test $tnum"
|
|
echo '$a\\' > /tmp/sed.cmd
|
|
echo 'hello' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/null > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare /tmp/out/out.$tnum /tmp/null
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.6'
|
|
echo "sed test $tnum"
|
|
$SED -n -e '$p' /tmp/lines1 /tmp/null /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# Should not print anything
|
|
set tnum='2.7'
|
|
echo "sed test $tnum"
|
|
$SED -n -e '20p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare /tmp/out/out.$tnum /tmp/null
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.8'
|
|
echo "sed test $tnum"
|
|
$SED -n -e '0p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare /tmp/out/out.$tnum /tmp/null
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.9'
|
|
echo "sed test $tnum"
|
|
$SED -n '/l1_7/p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.10'
|
|
echo "sed test $tnum"
|
|
$SED -n ' /l1_7/ p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# NOTE test 2.11 removed. BSD sed fails this test
|
|
|
|
set tnum='2.12'
|
|
echo "sed test $tnum"
|
|
$SED -n '1,4p' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.13'
|
|
echo "sed test $tnum"
|
|
$SED -n '1,$p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.14'
|
|
echo "sed test $tnum"
|
|
$SED -n '1,/l2_9/p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.15'
|
|
echo "sed test $tnum"
|
|
$SED -n '/4/,$p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.16'
|
|
echo "sed test $tnum"
|
|
$SED -n '/4/,20p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.17'
|
|
echo "sed test $tnum"
|
|
$SED -n '/4/,/10/p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.18'
|
|
echo "sed test $tnum"
|
|
$SED -n '/l2_3/,/l1_8/p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.19'
|
|
echo "sed test $tnum"
|
|
$SED -n '12,3p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='2.20'
|
|
echo "sed test $tnum"
|
|
$SED -n '/l1_7/,3p' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
|
|
echo "Testing commands"
|
|
|
|
# #### test_group
|
|
echo "Brace and other grouping"
|
|
set tnum='3.1'
|
|
echo "sed test $tnum"
|
|
echo '4,12 {' > /tmp/sed.cmd
|
|
echo ' s/^/^/' >> /tmp/sed.cmd
|
|
echo ' s/$/$/' >> /tmp/sed.cmd
|
|
echo ' s/_/T/' >> /tmp/sed.cmd
|
|
echo '}' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='3.2'
|
|
echo "sed test $tnum"
|
|
echo '4,12 {' > /tmp/sed.cmd
|
|
echo ' s/^/^/' >> /tmp/sed.cmd
|
|
echo ' /6/,/10/ {' >> /tmp/sed.cmd
|
|
echo ' s/$/$/' >> /tmp/sed.cmd
|
|
echo ' /8/ s/_/T/' >> /tmp/sed.cmd
|
|
echo ' }' >> /tmp/sed.cmd
|
|
echo '}' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='3.3'
|
|
echo "sed test $tnum"
|
|
echo '4,12 !{' > /tmp/sed.cmd
|
|
echo ' s/^/^/' >> /tmp/sed.cmd
|
|
echo ' /6/,/10/ !{' >> /tmp/sed.cmd
|
|
echo ' s/$/$/' >> /tmp/sed.cmd
|
|
echo ' /8/ !s/_/T/' >> /tmp/sed.cmd
|
|
echo ' }' >> /tmp/sed.cmd
|
|
echo '}' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='3.4'
|
|
echo "sed test $tnum"
|
|
$SED -e '4,12!s/^/^/' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
|
|
# #### test_acid
|
|
echo "Testing a c d and i commands"
|
|
set tnum='4.1'
|
|
echo "sed test $tnum"
|
|
echo 's/^/before_i/p' > /tmp/sed.cmd
|
|
echo '20i\\' >> /tmp/sed.cmd
|
|
echo 'inserted' >> /tmp/sed.cmd
|
|
echo 's/^/after_i/p' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='4.2'
|
|
echo "sed test $tnum"
|
|
echo '5,12s/^/5-12/' > /tmp/sed.cmd
|
|
echo 's/^/before_a/p' >> /tmp/sed.cmd
|
|
echo '/5-12/a\\' >> /tmp/sed.cmd
|
|
echo 'appended' >> /tmp/sed.cmd
|
|
echo 's/^/after_a/p' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='4.3'
|
|
echo "sed test $tnum"
|
|
echo 's/^/^/p' > /tmp/sed.cmd
|
|
echo '/l1_/a\\' >> /tmp/sed.cmd
|
|
echo 'appended' >> /tmp/sed.cmd
|
|
echo '8,10N' >> /tmp/sed.cmd
|
|
echo 's/$/$/p' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='4.4'
|
|
echo "sed test $tnum"
|
|
echo 'c\\' > /tmp/sed.cmd
|
|
echo 'hello' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='4.5'
|
|
echo "sed test $tnum"
|
|
echo '8c\\' > /tmp/sed.cmd
|
|
echo 'hello' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='4.6'
|
|
echo "sed test $tnum"
|
|
echo '3,14c\\' > /tmp/sed.cmd
|
|
echo 'hello' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='4.8'
|
|
echo "sed test $tnum"
|
|
$SED d </tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare /tmp/out/out.$tnum /tmp/null
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
|
|
# #### test_branch
|
|
echo "Testing labels and branching"
|
|
set tnum='5.1'
|
|
echo "sed test $tnum"
|
|
echo 'b label4' > /tmp/sed.cmd
|
|
echo ':label3' >> /tmp/sed.cmd
|
|
echo 's/^/label3_/p' >> /tmp/sed.cmd
|
|
echo 'b end' >> /tmp/sed.cmd
|
|
echo ':label4' >> /tmp/sed.cmd
|
|
echo '2,12b label1' >> /tmp/sed.cmd
|
|
echo 'b label2' >> /tmp/sed.cmd
|
|
echo ':label1' >> /tmp/sed.cmd
|
|
echo 's/^/label1_/p' >> /tmp/sed.cmd
|
|
echo 'b' >> /tmp/sed.cmd
|
|
echo ':label2' >> /tmp/sed.cmd
|
|
echo 's/^/label2_/p' >> /tmp/sed.cmd
|
|
echo 'b label3' >> /tmp/sed.cmd
|
|
echo ':end' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# Note: test 5.2 removed. BSD sed fails this test
|
|
# Note: test 5.3 removed. SunOS sed behaves differently here. Clarification needed.
|
|
# Check that t clears the substitution done flag
|
|
set tnum='5.4'
|
|
echo "sed test $tnum"
|
|
echo '1,8s/^/^/' > /tmp/sed.cmd
|
|
echo 't l1' >> /tmp/sed.cmd
|
|
echo ':l1' >> /tmp/sed.cmd
|
|
echo 't l2' >> /tmp/sed.cmd
|
|
echo 's/$/$/p' >> /tmp/sed.cmd
|
|
echo 'b' >> /tmp/sed.cmd
|
|
echo ':l2' >> /tmp/sed.cmd
|
|
echo 's/^/ERROR/' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# Check that reading a line clears the substitution done flag
|
|
# Note: test 5.5 removed: BSD sed fails this test
|
|
|
|
set tnum='5.6'
|
|
echo "sed test $tnum"
|
|
$SED 5q /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='5.7'
|
|
echo "sed test $tnum"
|
|
echo '5i\\' > /tmp/sed.cmd
|
|
echo 'hello' >> /tmp/sed.cmd
|
|
echo '5q' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
# Branch across block boundary
|
|
set tnum='5.8'
|
|
echo "sed test $tnum"
|
|
echo '{' > /tmp/sed.cmd
|
|
echo ':b' >> /tmp/sed.cmd
|
|
echo '}' >> /tmp/sed.cmd
|
|
echo 's/l/m/' >> /tmp/sed.cmd
|
|
echo 'tb' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare /tmp/out/out.$tnum /tmp/null
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
|
|
# #### test_pattern
|
|
echo "Pattern space commands"
|
|
# Check that the pattern space is deleted
|
|
set tnum='6.1'
|
|
echo "sed test $tnum"
|
|
echo 'c\\' > /tmp/sed.cmd
|
|
echo 'changed' >> /tmp/sed.cmd
|
|
echo 'p' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='6.2'
|
|
echo "sed test $tnum"
|
|
echo '4d' > /tmp/sed.cmd
|
|
echo 'p' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# Note: test 6.3 removed: SunOS sed refused to print here
|
|
|
|
set tnum='6.4'
|
|
echo "sed test $tnum"
|
|
echo '2h' > /tmp/sed.cmd
|
|
echo '3H' >> /tmp/sed.cmd
|
|
echo '4g' >> /tmp/sed.cmd
|
|
echo '5G' >> /tmp/sed.cmd
|
|
echo '6x' >> /tmp/sed.cmd
|
|
echo '6p' >> /tmp/sed.cmd
|
|
echo '6x' >> /tmp/sed.cmd
|
|
echo '6p' >> /tmp/sed.cmd
|
|
echo '' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -n -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='6.5'
|
|
echo "sed test $tnum"
|
|
$SED -e '4n' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='6.6'
|
|
echo "sed test $tnum"
|
|
$SED -n -e '4n' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare /tmp/out/out.$tnum /tmp/null
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
|
|
# #### test_print
|
|
echo "Testing print and file routines"
|
|
# GNU and SunOS sed behave differently here
|
|
# Note: test 7.1 removed: BSD sed drops core on this one
|
|
set tnum='7.2'
|
|
echo "sed test $tnum"
|
|
$SED -e '/l2_/=' /tmp/lines1 /tmp/lines2 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
$RM -f /tmp/lines4 >& /tmp/err.list
|
|
set tnum='7.3'
|
|
echo "sed test $tnum"
|
|
$SED -e '3,12w /tmp/lines4' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
cat /tmp/lines4 > /tmp/out/out.$tnum
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='7.4'
|
|
echo "sed test $tnum"
|
|
$SED -e '4r /tmp/lines2' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# ??? set tnum='7.5'
|
|
# ??? $SED -e '5r /dev/dds' /tmp/lines1
|
|
|
|
set tnum='7.6'
|
|
echo "sed test $tnum"
|
|
$SED -e '6r /tmp/null' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# Note: sed test 7.7 and 7.8 removed due to non-BSD compatibility
|
|
|
|
# #### test_subst
|
|
echo "Testing substitution commands"
|
|
set tnum='8.1'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/./X/g' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='8.2'
|
|
echo "sed test $tnum"
|
|
$SED -e 's,.,X,g' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# Note: test 8.3 removed: GNU and SunOS sed thinks we are escaping . as wildcard, not as separator
|
|
# Note: test 8.4: POSIX does not say that this should work
|
|
set tnum='8.4'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/[\/]/Q/' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='8.5'
|
|
echo "sed test $tnum"
|
|
$SED -e 's_\__X_' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='8.6'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/./(&)/g' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='8.7'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/./(\&)/g' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='8.8'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/\(.\)\(.\)\(.\)/x\3x\2x\1/g' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='8.9'
|
|
echo "sed test $tnum"
|
|
echo 's/_/u0\\' > /tmp/sed.cmd
|
|
echo 'u1\\' >> /tmp/sed.cmd
|
|
echo 'u2/g' >> /tmp/sed.cmd
|
|
$SED -e 's/ $//' /tmp/sed.cmd > /tmp/sed.cmd1
|
|
$SED -f /tmp/sed.cmd1 /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# Note: test 8.10 removed: BSD/GNU sed do not understand digit flags on s commands
|
|
|
|
set tnum='8.11'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/1/X/w /tmp/lines4' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
cat /tmp/lines4 > /tmp/out/out.$tnum
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='8.12'
|
|
echo "sed test $tnum"
|
|
$SED -e 's/[123]/X/g' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
set tnum='8.13'
|
|
echo "sed test $tnum"
|
|
$SED -e 'y/0123456789/9876543210/' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# NOTE 8.14 removed: BSD/GNU/SUN sed fail this test
|
|
|
|
set tnum='8.15'
|
|
echo "sed test $tnum"
|
|
$SED -e '1N;2y/\n/X/' /tmp/lines1 > /tmp/out/out.$tnum
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file (no differences expected)"
|
|
$compare out/out.$tnum /tmp/out/out.$tnum
|
|
echo " $tnum comparison status = $status"
|
|
echo ""
|
|
|
|
# NOTE 8.16 removed: BSD sed does not handle branch defined REs
|
|
|
|
# -------------------------------------------------------------------
|
|
|
|
# Tests originally written for tr command; modified to test sed
|
|
|
|
set src="file1.mixed"
|
|
set cmp="file1.UPPER"
|
|
set dest="/tmp/$cmp"
|
|
echo "Upshifting all characters in $src"
|
|
$SED -e's/a/A/g' -e's/b/B/g' -e's/c/C/g' -e's/d/D/g' -e's/e/E/g' -e's/f/F/g' -e's/g/G/g' -e's/h/H/g' -e's/i/I/g' -e's/j/J/g' -e's/k/K/g' -e's/l/L/g' -e's/m/M/g' -e's/n/N/g' -e's/o/O/g' -e's/p/P/g' -e's/q/Q/g' -e's/r/R/g' -e's/s/S/g' -e's/t/T/g' -e's/u/U/g' -e's/v/V/g' -e's/w/W/g' -e's/x/X/g' -e's/y/Y/g' -e's/z/Z/g' < $src > $dest
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file $cmp (no differences expected)"
|
|
$compare $cmp $dest
|
|
echo " comparison status = $status"
|
|
echo ""
|
|
|
|
set cmp="file1.novowel"
|
|
set dest="/tmp/$cmp"
|
|
echo "Removing lower-case vowels in $src"
|
|
$SED -e's/[aeiouy]//g' < $src > $dest
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file $cmp (no differences expected)"
|
|
$compare $cmp $dest
|
|
echo " comparison status = $status"
|
|
echo ""
|
|
|
|
set cmp="file1.nolower"
|
|
set dest="/tmp/$cmp"
|
|
echo "Removing lower-case letters and squeezing spaces in $src"
|
|
$SED -e's/[a-z]//g' -e's/ */ /g' < $src > $dest
|
|
echo " Completion status = $status"
|
|
echo "Checking results against control file $cmp (no differences expected)"
|
|
$compare $cmp $dest
|
|
echo " comparison status = $status"
|
|
echo ""
|
|
|
|
|
|
echo "***** Error Messages *****"
|
|
|
|
set dest="/tmp/err.cond"
|
|
|
|
echo ""
|
|
echo "Expected error: illegal option"
|
|
$SED -x $src > $dest
|
|
echo " Error completion status = $status (expected: 1)"
|
|
|
|
echo ""
|
|
set src="badname"
|
|
echo "Expected error: $src: no such file or directory"
|
|
$SED -f $src > $dest
|
|
echo " Error completion status = $status (expected: 1)"
|