about summary refs log blame commit diff stats
path: root/test_layers
blob: a8804c4137c75c69bd0a4abf6e173d05838855a2 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
           

                                                                            

                  
                              





                                              



                                                                           

               
                                     
                                         
               
                          

    
                                                                                                   
 
                                 

                       
                                                 

  
             



                             
                                                                                

      



































                                                                                
#!/bin/bash
# Repeatedly stop building until successive layers, and run all tests built.
#
# Test all layers:
#   test_layers
# Test non-app layers after x:
#   test_layers x
# Test layers after x and until y (inclusive):
#   test_layers x y
# Test all layers for a specific app:
#   test_layers app

TEST_UNTIL="./build_and_test_until"
MAKE="make"
VALGRIND="valgrind --leak-check=yes --num-callers=40 -q --error-exitcode=1"

for f in [0-9]*
do
  if [[ $f < $1 ]]; then continue; fi
  if [[ $2 && $f > $2 ]]; then exit 0; fi
  echo "=== $f"
  $TEST_UNTIL $f || exit 1
done

CXX=clang++ CFLAGS="-O3 -fsanitize=undefined -Wno-tautological-constant-out-of-range-compare" $MAKE

if [[ ! $1 || $1 == chessboard ]]
then
  echo "=== chessboard"
  $VALGRIND ./mu_bin test chessboard.mu || exit 1
fi

if [[ ! $1 ]]
then
  for f in edit/[0-9]*
  do
    echo "=== edit: until $f"
    $VALGRIND ./mu_bin test `echo edit/[0-9]* |perl -pwe "s,$f.*,$f,"` || exit 1
  done
fi

if [[ $1 && $1 == edit ]]
then
  for f in edit/00[1-3]*
  do
    echo "=== edit: until $f"
    $VALGRIND ./mu_bin test `echo edit/[0-9]* |perl -pwe "s,$f.*,$f,"` || exit 1
  done
fi

if [[ $1 && $1 == edit2 ]]
then
  for f in edit/00[4-6]*
  do
    echo "=== edit: until $f"
    $VALGRIND ./mu_bin test `echo edit/[0-9]* |perl -pwe "s,$f.*,$f,"` || exit 1
  done
fi

if [[ $1 && $1 == edit3 ]]
then
  for f in edit/00[7-9]*
  do
    echo "=== edit: until $f"
    $VALGRIND ./mu_bin test `echo edit/[0-9]* |perl -pwe "s,$f.*,$f,"` || exit 1
  done
fi

if [[ $1 && $1 == edit4 ]]
then
  for f in edit/01*
  do
    echo "=== edit: until $f"
    $VALGRIND ./mu_bin test `echo edit/[0-9]* |perl -pwe "s,$f.*,$f,"` || exit 1
  done
fi