1#!/bin/bash 2set -u 3 4RES=$(./analyze_libtsan.sh) 5PrintRes() { 6 printf "%s\n" "$RES" 7} 8 9PrintRes 10 11check() { 12 res=$(PrintRes | egrep "$1 .* $2 $3; ") 13 if [ "$res" == "" ]; then 14 echo FAILED $1 must contain $2 $3 15 exit 1 16 fi 17} 18 19for f in write1; do 20 check $f rsp 1 21 check $f push 2 22 check $f pop 2 23done 24 25for f in write2 write4 write8; do 26 check $f rsp 1 27 check $f push 3 28 check $f pop 3 29done 30 31for f in read1 read2 read4 read8; do 32 check $f rsp 1 33 check $f push 5 34 check $f pop 5 35done 36 37for f in func_entry func_exit; do 38 check $f rsp 0 39 check $f push 0 40 check $f pop 0 41 check $f call 1 # TraceSwitch() 42done 43 44echo LGTM 45