123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/bin/bash
- # All output will be collected here
- TESTSUNITPATH=$PWD
- # All relative paths are based on the tree's root
- FSBASEDIR=$(realpath "$PWD/../../")
- i=$1
- echo "----------------------------------" ;
- echo "Starting test: $i" ;
- echo "----------------------------------" ;
- # Change folder to where the test is
- currenttestpath="$FSBASEDIR/$i"
- cd $(dirname "$currenttestpath")
- # Tests are unique per module, so need to distinguish them by their directory
- relativedir=$(dirname "$i")
- echo "Relative dir is $relativedir"
- file=$(basename -- "$currenttestpath")
- log="$TESTSUNITPATH/log_run-tests_${relativedir//\//!}!$file.html";
- # Execute the test
- echo "Start executing $currenttestpath"
- $currenttestpath 2>&1 | tee >(ansi2html > $log) ;
- exitstatus=${PIPESTATUS[0]} ;
- echo "End executing $currenttestpath"
- echo "Exit status is $exitstatus"
- if [ "0" -eq $exitstatus ] ; then
- rm $log ;
- else
- echo "*** ./$i exit status is $exitstatus" ;
- corefilesearch=/cores/core.*.!drone!src!${relativedir//\//!}!.libs!$file.* ;
- echo $corefilesearch ;
- if ls $corefilesearch 1> /dev/null 2>&1; then
- echo "coredump found";
- coredump=$(ls $corefilesearch) ;
- echo $coredump;
- echo "set logging file $TESTSUNITPATH/backtrace_${i//\//!}.txt" ;
- gdb -ex "set logging file $TESTSUNITPATH/backtrace_${i//\//!}.txt" -ex "set logging on" -ex "set pagination off" -ex "bt full" -ex "bt" -ex "info threads" -ex "thread apply all bt" -ex "thread apply all bt full" -ex "quit" /drone/src/$relativedir/.libs/$file $coredump ;
- fi ;
- echo "*** $log was saved" ;
- fi ;
- echo "----------------" ;
|