#!/bin/bash

CARLC="./carlc"
CARL_ENGINE="carl_engine.o"
ARRAY_LIB="wrapper.o"
TMP_DIR="./tmp"
TEST_DIR="./tests"

if [ ! -d ./tmp ];
then
    mkdir ./tmp
fi

if [ ! -f $CARLC ] || [ ! -f $CARL_ENGINE ];
then
    ./buildcarl
fi

echo "#######  Testing $1";
$CARLC < $TEST_DIR/$1.carl > $TMP_DIR/$1.ll;
if [ -s $TMP_DIR/$1.ll ]
then
	llc $TMP_DIR/$1.ll #Converts LLVM to assembly .s file
	gcc -c $TMP_DIR/$1.s -o $TMP_DIR/$1.o

	g++ -o $TMP_DIR/$1.test $ARRAY_LIB $CARL_ENGINE $TMP_DIR/$1.o
else
	rm $TMP_DIR/$1.ll
fi