2012-07-30 10:58:13 +00:00
|
|
|
#!/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
|
|
|
|
}
|
|
|
|
|
2015-02-10 07:45:43 +00:00
|
|
|
for f in write1; do
|
|
|
|
check $f rsp 1
|
|
|
|
check $f push 2
|
|
|
|
check $f pop 2
|
2015-01-07 19:55:37 +00:00
|
|
|
done
|
|
|
|
|
2015-02-10 07:45:43 +00:00
|
|
|
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
|
2012-07-30 10:58:13 +00:00
|
|
|
done
|
|
|
|
|
2015-02-10 07:45:43 +00:00
|
|
|
for f in func_entry func_exit; do
|
2012-07-30 10:58:13 +00:00
|
|
|
check $f rsp 0
|
|
|
|
check $f push 0
|
|
|
|
check $f pop 0
|
|
|
|
check $f call 1 # TraceSwitch()
|
|
|
|
done
|
|
|
|
|
|
|
|
echo LGTM
|