88 lines
2.6 KiB
Bash
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
|