aboutsummaryrefslogblamecommitdiffstats
path: root/extra-tools/precommitTests.sh
blob: 57c17aa885e87b51b446aff78e1d7fa46b9b4a83 (plain) (tree)
1
2
3
4
5
6
7
8
9
           
                                                                                                                        

                                                                                                                        


                  
                   
                    

            
                             
                               
                        
              




                                                                                                                        
                                          





                                                                                                            
                                          





                                                                                                       
                                          



                                                                                                             






                                                                                                               


                                                                                                                        
       
                                                                                

     
                                                                           
            
 
                                                                                        
                                              


                      






                                                                                                

                                                                                                                                                                                                                                                   






                                                                                                   
                                                                                                          




                                                                                                 









                                                                                                       


                                                                                            

                                                                                                                                                                                                           






                                                                                               














                                                                                                                                        









                                                                                                                                             
                                                        





                                                                                                               
 

                                                                           
                                                                                                                        
       
                                                                                        
                                                 



                                                                                        

                                                                                 


                                                                  
                                                                      
             
                                                     
    
                                                                                      

  



















                                                                                
                                                                                                

                                                                                                                                                                                                                                                   

                      
                                                                                                   
    
                                                                                                 

  
                                                                                                          
                                  
 
                     

                                                                                                 









                                                                                                       


                                                                                            

                                                                                                                                                                                                           


                                                                                               
    
                                                                                             
  
 














                                                                                                                                        






                                                                                                                                             






                                                                                                                                        
 

                                                                                                          
                                                        





                                                                                                               
 

                                                                           
                                                                                                                        
       










                                                                                                

                                                                                                                                                                                                                                                   












                                                                                                          









                                                                                                       


                                                                                            

                                                                                                                                                                                                           






                                                                                               














                                                                                                                                        









                                                                                                                                             
                                                        





                                                                                                               
 

                                                                                             
                                                                                                                        




































                                                                                              

                        
                                                                           
                               
#!/bin/bash
########################################################################################################################
#cd $(dirname $0)
########################################################################################################################
Red="\033[0;31m"
Green="\033[0;32m"
Lblue="\033[1;34m"
Orange="\033[0;33m"
Magenta="\033[1;35m"
NC="\033[0m"

REP_FILE="test/precommit.rep"
TIME=$(date +%Y-%m-%d:%H:%M:%S)
#how many relics to keep
RELIC_COUNT=10
########################################################################################################################
function RelicKeeper
{
  cd ./reliquary/bruiser
  RELIC_CNT=$(ls | gawk 'END{print NR}')
  if (( $RELIC_CNT > $RELIC_COUNT )); then
    rm "$(ls -t | tail -1)"
    printf "${Orange}RelicKeeper removed the oldest bruiser relic.\n${NC}" | tee -a ../../test/precommit.rep
  fi

  cd ../m0
  RELIC_CNT=$(ls | gawk 'END{print NR}')
  if (( $RELIC_CNT > $RELIC_COUNT )); then
    rm "$(ls -t | tail -1)"
    printf "${Orange}RelicKeeper removed the oldest m0 relic.\n${NC}" | tee -a ../../test/precommit.rep
  fi

  cd ../safercpp
  RELIC_CNT=$(ls | gawk 'END{print NR}')
  if (( $RELIC_CNT > $RELIC_COUNT )); then
    rm "$(ls -t | tail -1)"
    printf "${Orange}RelicKeeper removed the oldest safercpp relic.\n${NC}" | tee -a ../../test/precommit.rep
  fi

  cd ../obfuscator
  RELIC_CNT=$(ls | gawk 'END{print NR}')
  if (( $RELIC_CNT > $RELIC_COUNT )); then
    rm "$(ls -t | tail -1)"
    printf "${Orange}RelicKeeper removed the oldest obfuscator relic.\n${NC}" | tee -a ../../test/precommit.rep
  fi

  cd ../..
}
########################################################################################################################
#c++11#
printf "${Lblue}switching to mutator root...\n${NC}" | tee ../test/precommit.rep
cd ..

printf "${Lblue}running make clean...\n${NC}" | tee -a ./test/precommit.rep
"make" clean

printf "${Lblue}testing the build in C++11 mode...\n${NC}" | tee -a ./test/precommit.rep
"make" CXX=clang++ BIULD_MODE=COV_NO_CLANG -j2
echo ""

if [[ $? == 0 ]]; then
  printf "${Green}mutator c++11 test build passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator c++11 test build failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running mutator-lvl0 on the tdd sources...\n${NC}" | tee -a ./test/precommit.rep

printf "${Orange}./mutator-lvl0 -SysHeader=false -MainOnly=true ./test/testFuncs1.c ./test/testFuncs2.c ./test/testFuncs3.c -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log\n${NC}" | tee -a ./test/precommit.rep
"./mutator-lvl0" -SysHeader=false -MainOnly=true ./test/testFuncs1.c ./test/testFuncs2.c ./test/testFuncs3.c -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log

if [[ $? == 0 ]]; then
  printf "${Green}mutator-lvl0 smoke test on the tdds passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator-lvl0 smoke test on the tdds failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running c++11 mutator-lvl0 xml report schema test...\n${NC}" | tee -a ./test/precommit.rep
"./mutator.sh" -t mutator-lvl0 xsd

if [[ $? == 0 ]];then
  printf "${Green}c++11 mutator-lvl0 xml report xsd passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}c++11 mutator-lvl0 xml report xsd failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Magenta}running c++11 mutagen xml report schema test...\n${NC}" | tee -a ./test/precommit.rep
"xmllint" --noout --schema ./samples/m0.xsd ./m0.xml

if [[ $? == 0 ]];then
  printf "${Green}c++11 mutagen xml report xsd passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}c++11 mutagen xml report xsd failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running smoke tests on mutator-lvl0...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./mutator-lvl0 -SysHeader=false -MainOnly=true ./test/testFuncs3.h -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log\n${NC}" | tee -a ./test/precommit.rep
"./mutator-lvl0" -SysHeader=false -MainOnly=true ./test/testFuncs3.h -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log

if [[ $? == 0 ]]; then
  printf "${Green}mutator-lvl0 C++11 smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator-lvl0 C++11 smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running bruiser smoke tests...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre1.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre1.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser C++11 smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser C++11 smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre2.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre2.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser C++11 smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser C++11 smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/smoketest.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/smoketest.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser C++11 smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser C++11 smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running cpp smoke tests on mutator-lvl0...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./mutator-lvl0 ./test/m0-cpp-smoke/m0-cpp-smoke.cpp\n${NC}" | tee -a ./test/precommit.rep
"./mutator-lvl0" ./test/m0-cpp-smoke/m0-cpp-smoke.cpp --

if [[ $? == 0 ]]; then
  printf "${Green}mutator-lvl0 C++11 cpp std headers smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator-lvl0 C++11 cpp std haders smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running make clean...\n${NC}" | tee -a ./test/precommit.rep
"make" clean
########################################################################################################################
#c++17#
printf "${Lblue}testing the build in C++1z mode...\n${NC}" | tee -a ./test/precommit.rep
"make" CXX=clang++ BUILD_MODE=COV_NO_CLANG_1Z -j2
echo ""

if [[ $? == 0 ]]; then
  printf "${Green}mutator c++1z test build passed.\n${NC}" | tee -a ./test/precommit.rep
  printf "${Orange}date and time of relic:.\n${NC}" | tee -a ./test/precommit.rep
  echo $TIME | tee -a ./test/precommit.rep
  "cp" ./mutator-lvl0 ./reliquary/m0/m0-$TIME
  "cp" ./bruiser/bruiser ./reliquary/bruiser/bruiser-$TIME
  "cp" ./safercpp/safercpp-arr ./reliquary/safercpp/safercpp-$TIME
  "cp" ./obfuscator/obfuscator ./reliquary/obfuscator/obfuscator-$TIME
  RelicKeeper
  source ./extra-tools/oracle.sh ./test/precommit.rep
else
  printf "${Red}mutator c++1z test build failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running load.py test...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}../bfd/test.py\n${NC}" | tee -a ./test/precommit.rep
./bfd/test.py --obj ./bfd/test/test.so
# its not a mistake. the obfuscator test is supposed to return 128
if [[ $? == 0 ]]; then
  printf "${Green}load.py test passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}load.py test failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running obfuscator test...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}../obfuscator/run.sh\n${NC}" | tee -a ./test/precommit.rep
./obfuscator/run.sh
# its not a mistake. the obfuscator test is supposed to return 128
if [[ $? == 128 ]]; then
  printf "${Green}obfuscator test passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}obfuscator test failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running mutator-lvl0 on the tdd sources...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./mutator-lvl0 -SysHeader=false -MainOnly=true ./test/testFuncs1.c ./test/testFuncs2.c ./test/testFuncs3.c -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log\n${NC}" | tee -a ./test/precommit.rep
"./mutator-lvl0" -SysHeader=false -MainOnly=true ./test/testFuncs1.c ./test/testFuncs2.c ./test/testFuncs3.c -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log

if [[ $? == 0 ]]; then
  printf "${Green}mutator-lvl0 smoke test on the tdds passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator-lvl0 smoke test on the tdds failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running c++1z mutator-lvl0 xml report schema test...\n${NC}" | tee -a ./test/precommit.rep
"./mutator.sh" -t mutator-lvl0 xsd

if [[ $? == 0 ]];then
  printf "${Green}c++1z mutator-lvl0 xml report xsd passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}c++1z mutator-lvl0 xml report xsd failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Magenta}running c++1z mutagen xml report schema test...\n${NC}" | tee -a ./test/precommit.rep
"xmllint" --noout --schema ./samples/m0.xsd ./m0.xml

if [[ $? == 0 ]];then
  printf "${Green}c++1z mutagen xml report xsd passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}c++1z mutagen xml report xsd failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running smoke tests on mutator-lvl0...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./mutator-lvl0 -SysHeader=false -MainOnly=true ./test/testFuncs3.h -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log\n${NC}" | tee -a ./test/precommit.rep
"./mutator-lvl0" -SysHeader=false -MainOnly=true ./test/testFuncs3.h -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log

if [[ $? == 0 ]]; then
  printf "${Green}mutator-lvl0 C++1z smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator-lvl0 C++1z smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running bruiser smoke tests...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre1.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre1.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser C++1z smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser C++1z smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre2.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre2.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser C++1z smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser C++1z smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/smoketest.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/smoketest.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser C++11 smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser C++11 smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/demo.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/demo.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser xobj test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser xobj test failed...\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running cpp smoke tests on mutator-lvl0...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./mutator-lvl0 ./test/m0-cpp-smoke/m0-cpp-smoke.cpp\n${NC}" | tee -a ./test/precommit.rep
"./mutator-lvl0" ./test/m0-cpp-smoke/m0-cpp-smoke.cpp --

if [[ $? == 0 ]]; then
  printf "${Green}mutator-lvl0 C++1z cpp std headers smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator-lvl0 C++1z cpp std haders smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running make clean...\n${NC}" | tee -a ./test/precommit.rep
"make" clean
########################################################################################################################
#c++14#
printf "${Lblue}testing the build in C++14 mode...\n${NC}" | tee -a ./test/precommit.rep
"make" CXX=clang++ BUILD_MODE=COV_NO_CLANG_14 -j2
echo ""

if [[ $? == 0 ]]; then
  printf "${Green}mutator c++14 test build passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator c++14 test build failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running mutator-lvl0 on the tdd sources...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./mutator-lvl0 -SysHeader=false -MainOnly=true ./test/testFuncs1.c ./test/testFuncs2.c ./test/testFuncs3.c -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log\n${NC}" | tee -a ./test/precommit.rep
"./mutator-lvl0" -SysHeader=false -MainOnly=true ./test/testFuncs1.c ./test/testFuncs2.c ./test/testFuncs3.c -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log

if [[ $? == 0 ]]; then
  printf "${Green}mutator-lvl0 smoke test on the tdds passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator-lvl0 smoke test on the tdds failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running c++14 mutator-lvl0 xml report schema test...\n${NC}" | tee -a ./test/precommit.rep
"./mutator.sh" -t mutator-lvl0 xsd

if [[ $? == 0 ]];then
  printf "${Green}c++14 mutator-lvl0 xml report xsd passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}c++14 mutator-lvl0 xml report xsd failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Magenta}running c++14 mutagen xml report schema test...\n${NC}" | tee -a ./test/precommit.rep
"xmllint" --noout --schema ./samples/m0.xsd ./m0.xml

if [[ $? == 0 ]];then
  printf "${Green}c++14 mutagen xml report xsd passed.\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}c++14 mutagen xml report xsd failed.\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running smoke tests on mutator-lvl0...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./mutator-lvl0 -SysHeader=false -MainOnly=true ./test/testFuncs3.h -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log\n${NC}" | tee -a ./test/precommit.rep
"./mutator-lvl0" -SysHeader=false -MainOnly=true ./test/testFuncs3.h -- -std=c90 -I/lib/gcc/x86_64-redhat-linux/7.3.1/include -Wall > ./test/misra-log

if [[ $? == 0 ]]; then
  printf "${Green}mutator-lvl0 C++14 smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator-lvl0 C++14 smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running bruiser smoke tests...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre1.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre1.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser C++14 smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser C++14 smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre2.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/pre2.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser C++14 smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser C++14 smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi
printf "${Orange}./bruiser/bruiser ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/smoketest.lua\n${NC}" | tee -a ./test/precommit.rep
"./bruiser/bruiser" ./test/bruisertest/test.cpp -lua ./bruiser/lua-scripts/smoketest.lua
if [[ $? == 0 ]]; then
  printf "${Green}bruiser C++11 smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}bruiser C++11 smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}running cpp smoke tests on mutator-lvl0...\n${NC}" | tee -a ./test/precommit.rep
printf "${Orange}./mutator-lvl0 ./test/m0-cpp-smoke/m0-cpp-smoke.cpp\n${NC}" | tee -a ./test/precommit.rep
"./mutator-lvl0" ./test/m0-cpp-smoke/m0-cpp-smoke.cpp --

if [[ $? == 0 ]]; then
  printf "${Green}mutator-lvl0 C++14 cpp std headers smoke test passed...\n${NC}" | tee -a ./test/precommit.rep
else
  printf "${Red}mutator-lvl0 C++14 cpp std haders smoke test failed...\n${NC}" | tee -a ./test/precommit.rep
fi

printf "${Lblue}cleaning the objects and exexutables...\n${NC}" | tee -a ./test/precommit.rep
"make" clean
########################################################################################################################
cd daemon
printf "${Lblue}changing to the daemon directory\n${NC}" | tee -a ../test/precommit.rep

printf "${Lblue}cleaning all objects and executables\n${NC}" | tee -a ../test/precommit.rep
"make" clean

printf "${Lblue}testing mutatord's build...\n${NC}" | tee -a ../test/precommit.rep
"make" mutatord

if [[ $? == 0 ]]; then
  printf "${Green}mutatord build test passed...\n${NC}" | tee -a ../test/precommit.rep
else
  printf "${Red}mutatord build test failed...\n${NC}" | tee -a ../test/precommit.rep
fi

printf "${Lblue}testing mutatorclient's build...\n${NC}" | tee -a ../test/precommit.rep
"make" mutatorclient

if [[ $? == 0 ]]; then
  printf "${Green}mutatorclient build test passed...\n${NC}" | tee -a ../test/precommit.rep
else
  printf "${Red}mutatorclient build test failed...\n${NC}" | tee -a ../test/precommit.rep
fi

printf "${Lblue}testing mutatorserver's build...\n${NC}" | tee -a ../test/precommit.rep
"make" mutatorserver

if [[ $? == 0 ]]; then
  printf "${Green}mutatorserver build test passed...\n${NC}" | tee -a ../test/precommit.rep
else
  printf "${Red}mutatorserver build test failed...\n${NC}" | tee -a ../test/precommit.rep
fi

printf "${Lblue}cleaning the objects and exexutables...\n${NC}" | tee -a ../test/precommit.rep
"make" clean

printf "${Lblue}finished running all tests...\n${NC}" | tee -a ../test/precommit.rep

#tell me when youre done
echo -ne '\007' && echo "" && echo -ne '\007' && echo "" && echo -ne '\007'
printf "${Green}beep...\n${NC}"