#!/bin/bash # # helper script to run some predefined set of tests # store results in a file that contains the git hash # and also shows differences if any # # if this command is run as all-tests3, then we will just do # make PYTHON=python3 # # xxx - WARNING : most likely the python2 and python3 tests # cannot safely be run together; need to check the nepi exp_ids # used more closely COMMAND=$(basename $0) PYTHON=python version=2 echo $COMMAND | grep -q 3 && { PYTHON=python3; version=3; } hash=$(git log -n 1 | head -1 | sed -e 's,commit ,,' -e 's,\(........\).*,\1,') # compute output file name output="zz.$hash.py$version" # if there is any pending change, use another name is_pristine="" changes=$(git diff HEAD | wc -l); changes=$(echo $changes) [ "$changes" == 0 ] && is_pristine=true [ -n "$is_pristine" ] || output="$output-pending" function all_tests () { echo all-tests : begin at; date begin=$(date +%s) echo ======================================== echo status echo ======================================== echo ===== Current hash $hash echo ===== Current branch git branch echo ===== Uncommitted changes git diff HEAD echo ======================================== echo tests echo ======================================== make PYTHON=$PYTHON all-tests make_retcod=$! echo ======================================== end=$(date +%s) echo all-tests : end at $((date)); echo total duration $(($end-$begin)) seconds return $make_retcod } # WARNING # the current code for analyzing the output is very basic # this needs to be checked manually for some time all_tests >& $output retcod=$? # analyze this output for success or not success=$output.success failure=$output.failed if [ "$retcod" != 0 ]; then touch $failure elif grep -q '^FAIL' $output; then touch $failure else touch $success fi