Useful script for Beta testers: on-the-fly compare output of 2 progs
Wayne Hayes
wayne at csri.toronto.edu
Sat Feb 23 17:03:28 AEST 1991
(I cancelled the first article of this title about 30 seconds after
posting it. I hope it didn't get very far. This version is better.)
I wrote this little shell script to Beta test some POSIX programs that
are going to be included in Minix 1.6. It's purpose is to compare the
output of two versions of a program to ensure they are identical. It
uses a crude algorithm to find if it should read a file or the standard
input. (Basically if there are any arguments not beginning with "-" or
"+" they are assumed to be filenames. Otherwise stdin is read.)
-----
#!/bin/sh
# a shell script to ensure the output of two versions of a program are identical
prog=`basename $0`
files=''
for i
do
case "$i" in
-*) ;;
+*) ;;
*) files=1 ;;
esac
done
if test -f "$files" </dev/null; then # there are files
# this is the "correct" version; substitute whatever path you need
/usr/ucb/$prog "$@" >/tmp/$prog.$$
# this one is being tested; sneak it into the path before the above
/e/wayne/bin/prog.new "$@" >/tmp/$prog.new.$$
else # read the standard input
# we use a named pipe rather than creating a temp file
tee /e/wayne/bin/named_pipe | /usr/ucb/$prog "$@" >/tmp/$prog.$$ &
/e/wayne/bin/$prog.new "$@" </e/wayne/bin/named_pipe >/tmp/$prog.new.$$
fi
# test that they're the same
if cmp /tmp/$prog.$$ /tmp/$prog.new.$$; then
cat /tmp/$prog.$$
rm /tmp/$prog.$$ /tmp/$prog.new.$$
else
echo -n "ERROR with the new version of $prog. Arguments were
$@
Press return to continue" >/dev/tty
line </dev/tty
exit 127
fi
--
"You ask me what I think about war and the death penalty. The latter question
is simpler. I am not for punishment at all, but only for the measures that
serve society and it's protection." -- Albert Einstein
Wayne Hayes INTERNET: wayne at csri.utoronto.ca CompuServe: 72401,3525
--
"You ask me what I think about war and the death penalty. The latter question
is simpler. I am not for punishment at all, but only for the measures that
serve society and it's protection." -- Albert Einstein
Wayne Hayes INTERNET: wayne at csri.utoronto.ca CompuServe: 72401,3525
--
"You ask me what I think about war and the death penalty. The latter question
is simpler. I am not for punishment at all, but only for the measures that
serve society and it's protection." -- Albert Einstein
Wayne Hayes INTERNET: wayne at csri.utoronto.ca CompuServe: 72401,3525
More information about the Alt.sources
mailing list