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