Files
calculet-npu-research-archive/source/repositories-complete/systemc-exact/systemc/config/test.sh.in
T

88 lines
2.6 KiB
Bash

#!/bin/sh
## ****************************************************************************
##
## Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
## more contributor license agreements. See the NOTICE file distributed
## with this work for additional information regarding copyright ownership.
## Accellera licenses this file to you under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with the
## License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
## implied. See the License for the specific language governing
## permissions and limitations under the License.
##
## ****************************************************************************
##
## test.sh.in --
## Process this file (during `make check') to produce a test.sh file.
##
## Original Author: Philipp A. Hartmann, 2013-05-20
##
## ****************************************************************************
##
## MODIFICATION LOG - modifiers, enter your name, affiliation, date and
## changes you are making here.
##
## Name, Affiliation, Date:
## Description of Modification:
##
## ****************************************************************************
#set -x
#set -e
# override user's SHELL (e.g. for SHELL=/bin/tcsh)
SHELL=@SHELL@
export SHELL
## SystemC / TLM example test to run
TEST=@TEST@
INPUT=@TESTINPUT@
GOLDEN=@TESTGOLDEN@
FILTER=@TESTFILTER@
# prepare environment
TESTDIR=`dirname "$0"`
TESTEXE=`basename "${TEST}"`
export TEST TESTDIR TESTEXE
# switch to test directory and restart
if test ! x"$TESTDIR" = x. ; then
cd "$TESTDIR"
exec ${SHELL} `basename "$0"` "$@"
fi
if test ! -f "${INPUT}" ; then INPUT="" ; fi
if test "x${INPUT}" != x ; then INPUT="< '${INPUT}'" ; fi
if test "x${FILTER}" != x ; then FILTER="| grep '${FILTER}'" ; fi
# run test executable
eval "./${TESTEXE} ${INPUT} ${FILTER} > run.log"
result=$?
# no golden -> return exit status
if test ! -e "${GOLDEN}" ; then exit $result ; fi
cat run.log | grep -v "stopped by user" | \
awk '{if($0!="") print $0}' > run_trimmed.log
cat ${GOLDEN} | grep -v "stopped by user" | \
awk '{if($0!="") print $0}' > ./expected_trimmed.log
diff ./run_trimmed.log ./expected_trimmed.log > diff.log 2>&1;
result=$?
if test -s diff.log ; then
echo "***ERROR:"
cat diff.log
else
echo "OK"
fi
rm -f *_trimmed.log run.log diff.log
exit $result