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