Skip to content
Snippets Groups Projects
Commit b235b706 authored by Jan David Mol's avatar Jan David Mol
Browse files

Task #4516: Fix testParset parameter parsing (now actually compares output...

Task #4516: Fix testParset parameter parsing (now actually compares output against reference), and created runrtcp.sh which runs rtcp under either MPI or not, based on CMake settings
parent 441fd79f
Branches
Tags
No related merge requests found
...@@ -8,6 +8,12 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) ...@@ -8,6 +8,12 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
add_definitions("-DLOFARROOT=${CMAKE_CURRENT_SOURCE_DIR}/..") add_definitions("-DLOFARROOT=${CMAKE_CURRENT_SOURCE_DIR}/..")
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/runrtcp.sh.in"
"${CMAKE_CURRENT_BINARY_DIR}/runrtcp.sh" # internal, no need to install
)
lofar_add_test(tBestEffortQueue tBestEffortQueue.cc) lofar_add_test(tBestEffortQueue tBestEffortQueue.cc)
lofar_add_test(tSSH tSSH.cc) lofar_add_test(tSSH tSSH.cc)
......
...@@ -21,6 +21,7 @@ def cmpfloat(filename_a, filename_b, precision = PRECISION): ...@@ -21,6 +21,7 @@ def cmpfloat(filename_a, filename_b, precision = PRECISION):
fB = file(B) fB = file(B)
sizeof_float = calcsize("f") sizeof_float = calcsize("f")
offset = 0
while 1: while 1:
bA = fA.read(sizeof_float) bA = fA.read(sizeof_float)
...@@ -39,7 +40,9 @@ def cmpfloat(filename_a, filename_b, precision = PRECISION): ...@@ -39,7 +40,9 @@ def cmpfloat(filename_a, filename_b, precision = PRECISION):
xA, = unpack("f", bA) xA, = unpack("f", bA)
xB, = unpack("f", bB) xB, = unpack("f", bB)
assert fabs(xA - xB) < PRECISION, "File %s and %s differ in content." % (A, B) assert fabs(xA - xB) < PRECISION, "File %s and %s differ in content at byte offset %s: value is %.5f versus %.5f." % (A, B, offset, xA, xB)
offset += sizeof_float
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
......
#!/bin/bash -x
if [ "$#" == "0" ]
then
echo Usage: '[NRPROCS=x]' $0 '[params]'
exit
fi
EXECUTABLE="@CMAKE_CURRENT_BINARY_DIR@/../src/rtcp"
HAVE_MPI="@HAVE_MPI@"
echo EXECUTABLE: $EXECUTABLE
echo HAVE_MPI: $HAVE_MPI
if [ "$HAVE_MPI" == "TRUE" ] # TODO: what to match here? I've seen TRUE and OFF
then
# OpenMPI
if [ "$NRPROCS" == "" ]
then
# A sane default for 1-3 stations
NRPROCS=4
fi
mpirun -H localhost -np $NRPROCS "$EXECUTABLE" "$@"
else
# No MPI
"$EXECUTABLE" "$@"
fi
...@@ -4,5 +4,5 @@ TESTNAME=`basename "${0%%.run}"` ...@@ -4,5 +4,5 @@ TESTNAME=`basename "${0%%.run}"`
PARSET=$srcdir/$TESTNAME.parset PARSET=$srcdir/$TESTNAME.parset
OUTPUT=$srcdir/$TESTNAME.output OUTPUT=$srcdir/$TESTNAME.output
$srcdir/testParset.sh "$PARSET" -r "$OUTPUT" || exit $? $srcdir/testParset.sh -r "$OUTPUT" "$PARSET" || exit $?
...@@ -4,5 +4,5 @@ TESTNAME=`basename "${0%%.run}"` ...@@ -4,5 +4,5 @@ TESTNAME=`basename "${0%%.run}"`
PARSET=$srcdir/$TESTNAME.parset PARSET=$srcdir/$TESTNAME.parset
OUTPUT=$srcdir/$TESTNAME.output OUTPUT=$srcdir/$TESTNAME.output
$srcdir/testParset.sh "$PARSET" -r "$OUTPUT" || exit $? $srcdir/testParset.sh -r "$OUTPUT" "$PARSET" || exit $?
...@@ -4,5 +4,5 @@ TESTNAME=`basename "${0%%.run}"` ...@@ -4,5 +4,5 @@ TESTNAME=`basename "${0%%.run}"`
PARSET=$srcdir/$TESTNAME.parset PARSET=$srcdir/$TESTNAME.parset
OUTPUT=$srcdir/$TESTNAME.output OUTPUT=$srcdir/$TESTNAME.output
$srcdir/testParset.sh "$PARSET" -r "$OUTPUT" || exit $? $srcdir/testParset.sh -r "$OUTPUT" "$PARSET" || exit $?
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
REFDIR= REFDIR=
GPUEFFICIENCY=0 GPUEFFICIENCY=0
echo "Invoked as" "$0" "$@"
# Parse options # Parse options
while getopts "r:g:" opt while getopts "r:g:" opt
do do
...@@ -32,13 +34,13 @@ do ...@@ -32,13 +34,13 @@ do
esac esac
done done
shift $((OPTIND-1))
PARSET=$1 PARSET=$1
# Include some useful shell functions # Include some useful shell functions
. $srcdir/testFuncs.sh . $srcdir/testFuncs.sh
BINDIR=`pwd`/../src
# Some host info # Some host info
echo "Running as `whoami`" echo "Running as `whoami`"
echo "Running on `hostname`" echo "Running on `hostname`"
...@@ -57,7 +59,7 @@ fi ...@@ -57,7 +59,7 @@ fi
echo "Testing $PARSET" echo "Testing $PARSET"
RUNDIR=`pwd` RUNDIR=`pwd`
OUTDIR=`basename "${PARSET%.parset}.in_output"` OUTDIR=`basename "${PARSET%.parset}.output"`
function parse_logs function parse_logs
{ {
...@@ -98,9 +100,9 @@ function parse_logs ...@@ -98,9 +100,9 @@ function parse_logs
export LOFARROOT=$srcdir/.. && export LOFARROOT=$srcdir/.. &&
# run correlator -- without profiling # run correlator -- without profiling
mpirun -H localhost -np 4 $BINDIR/rtcp $PARSET > performance_normal.txt 2>&1 && $RUNDIR/runrtcp.sh $PARSET > performance_normal.txt 2>&1 &&
# run correlator -- with profiling # run correlator -- with profiling
mpirun -H localhost -np 4 $BINDIR/rtcp -p $PARSET > performance_profiled.txt 2>&1 && $RUNDIR/runrtcp.sh -p $PARSET > performance_profiled.txt 2>&1 &&
# compare output # compare output
if [ "x" != "x$REFDIR" ] if [ "x" != "x$REFDIR" ]
...@@ -112,16 +114,14 @@ function parse_logs ...@@ -112,16 +114,14 @@ function parse_logs
for f in *.MS for f in *.MS
do do
${srcdir}/cmpfloat.py $f $REFDIR/$f || exit 1 ${srcdir}/cmpfloat.py `pwd`/$f $REFDIR/$f || exit 1
done done
fi && fi &&
# check logs # check logs
parse_logs performance_normal.txt performance_profiled.txt parse_logs performance_normal.txt performance_profiled.txt &&
) || exit 1
cd $RUNDIR
# toss output # toss output if everything is ok
rm -rf $OUTDIR (cd $RUNDIR && rm -rf $OUTDIR)
) || exit 1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment