#!/bin/bash

non_zero=0

function run_cmd_with_check() {
    "$@"
    if [[ $? -ne 0 ]]
    then
	printf "failed"
	((non_zero++))
    fi
}


TRAVIS_BUILD_DIR=$PWD
cd ${TRAVIS_BUILD_DIR}
mkdir -p build
rm -f FAILED
rm -f SUCCESS
cd build; rm -rf *
cmake .. && make -j 4 VERBOSE=1
git log --pretty=format:'Name:%cn %nHash:%H%nTimestamp=%ci %n' -n 1 >> LOG
echo "****************P1****************" >> LOG

run_cmd_with_check ./prob1_mandelbrot_threads/mandelbrot.bin -v 1 >> LOG 2>&1
run_cmd_with_check ./prob1_mandelbrot_threads/mandelbrot.bin -v 2 >> LOG 2>&1
run_cmd_with_check ./prob1_mandelbrot_threads/mandelbrot.bin -v 3 >> LOG 2>&1
run_cmd_with_check ./prob1_mandelbrot_threads/mandelbrot.bin -v 4 >> LOG 2>&1
run_cmd_with_check ./prob1_mandelbrot_threads/mandelbrot.bin -v 5 >> LOG 2>&1
run_cmd_with_check ./prob1_mandelbrot_threads/mandelbrot.bin -v 6 >> LOG 2>&1
echo "****************P2****************" >> LOG
run_cmd_with_check ./prob2_vecintrin/array_vec.bin >> LOG 2>&1
echo "****************P3****************" >> LOG 
run_cmd_with_check ./prob3_mandelbrot_ispc/mandelbrot_ispc.bin -t -v 1 >> LOG 2>&1
echo "****************P4****************" >> LOG
run_cmd_with_check ./prob4_sqrt/sqrt_ispc.bin -d r >> LOG 2>&1


cd ../
FILENAME=`basename $PWD`

if [ "$non_zero" -eq "0"  ]
then
    echo "" >> SUCCESS
    rm ${TRAVIS_BUILD_DIR}/$FILENAME.log.failed
    cp ./build/LOG ${TRAVIS_BUILD_DIR}/$FILENAME.log.success
else
    echo "" >> FAILED
    rm ${TRAVIS_BUILD_DIR}/$FILENAME.log.success
    cp ./build/LOG ${TRAVIS_BUILD_DIR}/$FILENAME.log.failed
    fi
