|
@@ -4,6 +4,33 @@
|
|
|
cd ..
|
|
|
exec 1> /dev/null
|
|
|
exec 2> /dev/null
|
|
|
-echo $echo_n "$out$echo_c" | cmp -s - tmp-$$/stdout || exit 1
|
|
|
-echo $echo_n "$err$echo_c" | cmp -s - tmp-$$/stderr || exit 1
|
|
|
+
|
|
|
+compare() {
|
|
|
+ eval tempfile=tmp-$$/std${1}
|
|
|
+ eval echo \""\${$1}"\" | sed '$d' > ${tempfile}0
|
|
|
+
|
|
|
+ sedscript=tmp-$$/${1}.sed
|
|
|
+ if eval test \".\${${1}_ignore}\" = .; then
|
|
|
+ :
|
|
|
+ else
|
|
|
+ eval echo \"\${${1}_ignore}\" | sed 's,^.*$,/&/d,;' > $sedscript
|
|
|
+ sed -f $sedscript ${tempfile} > ${tempfile}.1
|
|
|
+ mv ${tempfile}.1 ${tempfile}
|
|
|
+ fi
|
|
|
+
|
|
|
+ if eval test -z "\${${1}_regex}" ; then
|
|
|
+ cmp -s ${tempfile}0 ${tempfile} || exit 1
|
|
|
+ else
|
|
|
+ awk '{print NR " " $0}' ${tempfile}0 > ${tempfile}.1
|
|
|
+ awk '{print NR " " $0}' ${tempfile} | join ${tempfile}.1 - |
|
|
|
+ while read NUM RE LINE
|
|
|
+ do
|
|
|
+ echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
|
|
|
+ done
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+compare out
|
|
|
+compare err
|
|
|
+
|
|
|
rm -rf tmp-$$
|