#!/usr/bin/env bash

# Script to do performance testing.

# Invocation 
# check_performance SRC_DIR BUILD_DIR

# 1: variables
#
SRC_DIR=$1
BUILD_DIR=$2

# Now that we've successfully translated the numerical option into
# a symbolic one, we can safely ignore it.
shift

# This has been true all along.  Found out about it the hard way...
case $BASH_VERSION in
    1*)  
	echo 'You need bash 2.x to run check_performance.  Exiting.'; 
	exit 1 ;;
    *)   ;;  
esac

flags_script=$BUILD_DIR/scripts/testsuite_flags
INCLUDES=`$flags_script --build-includes`
PCH_FLAGS=`$flags_script --cxxpchflags`
FLAGS=`$flags_script --cxxflags`
TEST_FLAGS="-S"
COMPILER=`$flags_script --build-cxx`
CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS $TEST_FLAGS"

echo "compile line is:"
echo $CXX
echo ""

TESTS_FILE="testsuite_files"

#mkdir binaries
UNIQUE_ID=0

for NAME in `cat $TESTS_FILE`
do
  if $RUN; then
    echo $NAME
    OUTPUT_NAME=$UNIQUE_ID
    $CXX $SRC_DIR/testsuite/$NAME -o $OUTPUT_NAME
    if [ -f $OUTPUT_NAME ]; then
#	mv $OUTPUT_NAME binaries
	rm $OUTPUT_NAME
    fi
    echo ""
    let UNIQUE_ID+=1 
  fi
done

exit 0
