#!/bin/bash

# gcc -E, no -P
# $ creduce --n 16 test.sh ${FILE}

GCC=/usr/bin/gcc-6
CLANG=/usr/bin/clang++-5.0

FILE=buffer.cpp

FLAGS="-std=c++11 -Wall -Wextra -Werror -o buffer"

$GCC $FLAGS $FILE #>/dev/null 2>&1

if [ $? -ne 0 ]
then
  echo "0 compilation failed, bad"
  exit 1;
else
  echo "0 compilation passed, GOOD"
fi

./buffer >/dev/null 2>&1

if [ $? -ne 10 ]
then
  echo "1 unexpected output, bad"
  exit 1;
else
  echo "1 expected output, GOOD"
fi


$CLANG $FLAGS $FILE >/dev/null 2>&1

if [ $? -ne 0 ]
then
  echo "2 compilation failed, bad"
  exit 1;
else
  echo "2 compilation passed, GOOD"
fi

./buffer >/dev/null 2>&1

if [ $? -ne 0 ]
then
  echo "3 unexpected output, bad"
  exit 1;
else
  echo "3 expected output, GOOD"
fi

echo "ALL GOOD, valid testcase"

exit 0;
