1*3a92d97fSJulio Merino 2*3a92d97fSJulio MerinoREGRESSION_START($1) 3*3a92d97fSJulio Merino 4*3a92d97fSJulio Merinoecho '1..26' 5*3a92d97fSJulio Merino 6*3a92d97fSJulio MerinoREGRESSION_TEST(`G', `sed G <${SRCDIR}/regress.in') 7*3a92d97fSJulio MerinoREGRESSION_TEST(`P', `sed P <${SRCDIR}/regress.in') 8*3a92d97fSJulio MerinoREGRESSION_TEST(`psl', `sed \$!g\;P\;D <${SRCDIR}/regress.in') 9*3a92d97fSJulio MerinoREGRESSION_TEST(`bcb', `sed s/X/$(jot -n -bx -s "" 2043)\\\\zz/ <${SRCDIR}/regress.in') 10*3a92d97fSJulio MerinoREGRESSION_TEST(`y', `echo -n foo | sed y/o/O/') 11*3a92d97fSJulio MerinoREGRESSION_TEST(`sg', `echo foo | sed s/,*/,/g') 12*3a92d97fSJulio MerinoREGRESSION_TEST(`s3', `echo foo | sed s/,*/,/3') 13*3a92d97fSJulio MerinoREGRESSION_TEST(`s4', `echo foo | sed s/,*/,/4') 14*3a92d97fSJulio MerinoREGRESSION_TEST(`s5', `echo foo | sed s/,*/,/5') 15*3a92d97fSJulio MerinoREGRESSION_TEST(`c0', `sed ''`c\ 16*3a92d97fSJulio Merinofoo 17*3a92d97fSJulio Merino''`<${SRCDIR}/regress.in') 18*3a92d97fSJulio MerinoREGRESSION_TEST(`c1', `sed ''`4,$c\ 19*3a92d97fSJulio Merinofoo 20*3a92d97fSJulio Merino''`<${SRCDIR}/regress.in') 21*3a92d97fSJulio MerinoREGRESSION_TEST(`c2', `sed ''`3,9c\ 22*3a92d97fSJulio Merinofoo 23*3a92d97fSJulio Merino''`<${SRCDIR}/regress.in') 24*3a92d97fSJulio MerinoREGRESSION_TEST(`c3', `sed ''`3,/no such string/c\ 25*3a92d97fSJulio Merinofoo 26*3a92d97fSJulio Merino''`<${SRCDIR}/regress.in') 27*3a92d97fSJulio MerinoREGRESSION_TEST(`b2a', `sed ''`2,3b 28*3a92d97fSJulio Merino1,2d''` <${SRCDIR}/regress.in') 29*3a92d97fSJulio Merino 30*3a92d97fSJulio Merino` 31*3a92d97fSJulio Merinoinplace_test() 32*3a92d97fSJulio Merino{ 33*3a92d97fSJulio Merino expr="$1" 34*3a92d97fSJulio Merino rc=0 35*3a92d97fSJulio Merino ns=$(jot 5) 36*3a92d97fSJulio Merino ins= outs= _ins= 37*3a92d97fSJulio Merino for n in $ns; do 38*3a92d97fSJulio Merino jot -w "l${n}_%d" 9 | tee lines.in.$n lines._in.$n | \ 39*3a92d97fSJulio Merino sed "$expr" > lines.out.$n 40*3a92d97fSJulio Merino ins="$ins lines.in.$n" 41*3a92d97fSJulio Merino outs="$outs lines.out.$n" 42*3a92d97fSJulio Merino _ins="$_ins lines._in.$n" 43*3a92d97fSJulio Merino done 44*3a92d97fSJulio Merino sed "$expr" $_ins > lines.out 45*3a92d97fSJulio Merino 46*3a92d97fSJulio Merino sed -i "" "$expr" $ins 47*3a92d97fSJulio Merino sed -I "" "$expr" $_ins 48*3a92d97fSJulio Merino 49*3a92d97fSJulio Merino for n in $ns; do 50*3a92d97fSJulio Merino diff -u lines.out.$n lines.in.$n || rc=1 51*3a92d97fSJulio Merino done 52*3a92d97fSJulio Merino cat $_ins | diff -u lines.out - || rc=1 53*3a92d97fSJulio Merino rm -f $ins $outs $_ins lines.out 54*3a92d97fSJulio Merino 55*3a92d97fSJulio Merino return $rc 56*3a92d97fSJulio Merino} 57*3a92d97fSJulio Merino' 58*3a92d97fSJulio Merino 59*3a92d97fSJulio MerinoREGRESSION_TEST_FREEFORM(`inplace1', `inplace_test 3,6d') 60*3a92d97fSJulio MerinoREGRESSION_TEST_FREEFORM(`inplace2', `inplace_test 8,30d') 61*3a92d97fSJulio MerinoREGRESSION_TEST_FREEFORM(`inplace3', `inplace_test 20,99d') 62*3a92d97fSJulio MerinoREGRESSION_TEST_FREEFORM(`inplace4', `inplace_test "{;{;8,30d;};}"') 63*3a92d97fSJulio MerinoREGRESSION_TEST_FREEFORM(`inplace5', `inplace_test "3x;6G"') 64*3a92d97fSJulio Merino 65*3a92d97fSJulio MerinoREGRESSION_TEST(`icase1', `sed /SED/Id <${SRCDIR}/regress.in') 66*3a92d97fSJulio MerinoREGRESSION_TEST(`icase2', `sed s/SED/Foo/I <${SRCDIR}/regress.in') 67*3a92d97fSJulio MerinoREGRESSION_TEST(`icase3', `sed s/SED/Foo/ <${SRCDIR}/regress.in') 68*3a92d97fSJulio MerinoREGRESSION_TEST(`icase4', `sed s/SED/Foo/i <${SRCDIR}/regress.in') 69*3a92d97fSJulio Merino 70*3a92d97fSJulio MerinoREGRESSION_TEST(`hanoi', `echo ":abcd: : :" | sed -f ${SRCDIR}/hanoi.sed') 71*3a92d97fSJulio MerinoREGRESSION_TEST(`math', `echo "4+7*3+2^7/3" | sed -f ${SRCDIR}/math.sed') 72*3a92d97fSJulio MerinoREGRESSION_TEST(`not', `echo foo | sed "1!!s/foo/bar/"') 73*3a92d97fSJulio Merino 74*3a92d97fSJulio MerinoREGRESSION_END() 75