summaryrefslogtreecommitdiff
path: root/lib/tsan/check_analyze.sh
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2012-05-10 15:10:03 +0000
committerKostya Serebryany <kcc@google.com>2012-05-10 15:10:03 +0000
commitb82ae88720750d0ad4fd829c84e0dd0f8708cc2b (patch)
treeb67f43f1e88973dd324d1ccd75c759023389fede /lib/tsan/check_analyze.sh
parentda4edd850db1a333c15fc3b0abc01a2e8d2f08fe (diff)
downloadcompiler-rt-b82ae88720750d0ad4fd829c84e0dd0f8708cc2b.tar.gz
compiler-rt-b82ae88720750d0ad4fd829c84e0dd0f8708cc2b.tar.bz2
compiler-rt-b82ae88720750d0ad4fd829c84e0dd0f8708cc2b.tar.xz
[tsan] old-dstyle Makefile for tests; two helper scripts that analyze the assembly code of the hot functions
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@156547 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan/check_analyze.sh')
-rwxr-xr-xlib/tsan/check_analyze.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/tsan/check_analyze.sh b/lib/tsan/check_analyze.sh
new file mode 100755
index 00000000..39d570b9
--- /dev/null
+++ b/lib/tsan/check_analyze.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+set -u
+
+RES=$(./analyze_libtsan.sh)
+PrintRes() {
+ printf "%s\n" "$RES"
+}
+
+PrintRes
+
+mops="write1 \
+ write2 \
+ write4 \
+ write8 \
+ 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 $mops; do
+ check $f rsp 1 # To read caller pc.
+ check $f push 0
+ check $f pop 0
+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