forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			44 lines
		
	
	
		
			608 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			608 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/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
 |