#!/bin/sh # Test whether the code generated by the Mercury compiler # is producing the expected output. # Return a status of 0 (true) if everything is all right, and 1 otherwise. . ./Mmake.thisdir . $DEPTH/handle_options # Run the tests in any subdirectories of this one. If any of these # fail, we still perform the tests in this directory but return a # status of 1 regardless of the outcome. . $DEPTH/subdir_runtests if test "$subdir_failures" = "" then subdir_status=0 else subdir_status=1 fi # Now run all the tests in this directory. . $DEPTH/startup eval mmake $mmakeopts depend_local || exit 1 eval mmake -k $mmakeopts check_local checkstatus=$? pwdir=`pwd` thisdirname=`basename $pwdir` cat *.res > .allres if test ! -s .allres -a "$checkstatus" = 0 then echo "the tests in the $thisdirname directory succeeded" echo "mmakeopts=$mmakeopts" rm -f .allres . $DEPTH/shutdown exit $subdir_status else echo "the tests in the $thisdirname directory failed" echo "mmakeopts=$mmakeopts" echo "the differences are:" cat .allres exit 1 fi