58 lines
		
	
	
		
			1006 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1006 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/sh
 | |
| #
 | |
| # test -- run a client self test.
 | |
| #
 | |
| P="test"
 | |
| 
 | |
| fix=`/bin/pwd`
 | |
| fix=`dirname $fix`
 | |
| fix=`dirname $fix`
 | |
| 
 | |
| me="../autotest"
 | |
| 
 | |
| # XXX: the exit status that indicates a rerun ...
 | |
| rerun=5
 | |
| 
 | |
| function runtests {
 | |
| 	for i in \
 | |
| 		"$@"
 | |
| 	do
 | |
| 		case "$i" in
 | |
| 		*-filter|*-out|*-tmp|*.state)	continue ;;
 | |
| 		esac
 | |
| 
 | |
| 		##echo "*** $i ...."
 | |
| 		{
 | |
| 			"$me" "$i"
 | |
| 			rc="$?"
 | |
| 			echo "--SELFTEST-- exit $rc"
 | |
| 			while [ "$rc" = "$rerun" ]; do
 | |
| 				"$me" --continue "$i"
 | |
| 				rc="$?"
 | |
| 				echo "--SELFTEST-- exit $rc"
 | |
| 			done
 | |
| 		} 2>&1 | `dirname "$i"`/NNN-filter "$i" | \
 | |
| 			sed -e "s@$fix@SRC@" -e "s@, line [0-9]*@, line N@" \
 | |
| 			>"$i-tmp" 2>&1
 | |
| 
 | |
| 		if [ ! -f "$i-out" ]; then
 | |
| 			echo "$P: WARNING: $i: no results for test"
 | |
| 			cat "$i-tmp"
 | |
| 
 | |
| 		elif ! cmp "$i-out" "$i-tmp"; then
 | |
| 			echo "$P: ERROR: $i: test failed"
 | |
| 			diff -u "$i-out" "$i-tmp"
 | |
| 
 | |
| 		else
 | |
| 			echo "$P: PASS: $i: test passed"
 | |
| 		fi
 | |
| 	done
 | |
| }
 | |
| 
 | |
| # Run all of the tests.
 | |
| case "$1" in
 | |
| clean)		rm -rf tests/*-tmp tests/*.state ;;
 | |
| test)		runtests tests/* ;;
 | |
| *)		runtests "$@" ;;
 | |
| esac
 |