xref: /freebsd/bin/ed/test/ckscripts.sh (revision 59c8e88e72633afbc47a4ace0d2170d00d51f7dc)
1#!/bin/sh -
2# This script runs the .ed scripts generated by mkscripts.sh
3# and compares their output against the .r files, which contain
4# the correct output
5#
6
7PATH="/bin:/usr/bin:/usr/local/bin/:."
8ED=$1
9[ ! -x $ED ] && { echo "$ED: cannot execute"; exit 1; }
10
11# Run the *.red scripts first, since these don't generate output;
12# they exit with non-zero status
13for i in *.red; do
14	echo $i
15	if $i; then
16		echo "*** The script $i exited abnormally  ***"
17	fi
18done >errs.o 2>&1
19
20# Run the remainding scripts; they exit with zero status
21for i in *.ed; do
22#	base=`expr $i : '\([^.]*\)'`
23#	base=`echo $i | sed 's/\..*//'`
24	base=`$ED - \!"echo $i" <<-EOF
25		s/\..*
26	EOF`
27	if $base.ed; then
28		if cmp -s $base.o $base.r; then :; else
29			echo "*** Output $base.o of script $i is incorrect ***"
30		fi
31	else
32		echo "*** The script $i exited abnormally ***"
33	fi
34done >scripts.o 2>&1
35
36grep -h '\*\*\*' errs.o scripts.o
37