45 lines
636 B
Bash
Executable File
45 lines
636 B
Bash
Executable File
#!/bin/bash
|
|
set -u
|
|
|
|
RES=$(./analyze_libtsan.sh)
|
|
PrintRes() {
|
|
printf "%s\n" "$RES"
|
|
}
|
|
|
|
PrintRes
|
|
|
|
check() {
|
|
res=$(PrintRes | egrep "$1 .* $2 $3; ")
|
|
if [ "$res" == "" ]; then
|
|
echo FAILED $1 must contain $2 $3
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
for f in write1; do
|
|
check $f rsp 1
|
|
check $f push 2
|
|
check $f pop 2
|
|
done
|
|
|
|
for f in write2 write4 write8; do
|
|
check $f rsp 1
|
|
check $f push 3
|
|
check $f pop 3
|
|
done
|
|
|
|
for f in read1 read2 read4 read8; do
|
|
check $f rsp 1
|
|
check $f push 5
|
|
check $f pop 5
|
|
done
|
|
|
|
for f in func_entry func_exit; do
|
|
check $f rsp 0
|
|
check $f push 0
|
|
check $f pop 0
|
|
check $f call 1 # TraceSwitch()
|
|
done
|
|
|
|
echo LGTM
|