]> git.sesse.net Git - stockfish/blobdiff - tests/instrumented.sh
Search simplification
[stockfish] / tests / instrumented.sh
index 838ed8f4c94ca5af15c4d68728e6b76a7bdf4225..03e9c9de093ca37fea339f144569d00bfcb01945 100755 (executable)
@@ -17,18 +17,25 @@ case $1 in
     postfix='1>/dev/null'
     threads="1"
   ;;
+  --valgrind-thread)
+    echo "valgrind-thread testing started"
+    prefix=''
+    exeprefix='valgrind --fair-sched=try --error-exitcode=42'
+    postfix='1>/dev/null'
+    threads="2"
+  ;;
   --sanitizer-undefined)
-    echo "sanitizer testing started"
+    echo "sanitizer-undefined testing started"
     prefix='!'
     exeprefix=''
-    postfix='2>&1 | grep "runtime error:"'
+    postfix='2>&1 | grep -A50 "runtime error:"'
     threads="1"
   ;;
   --sanitizer-thread)
-    echo "sanitizer testing started"
+    echo "sanitizer-thread testing started"
     prefix='!'
     exeprefix=''
-    postfix='2>&1 | grep "WARNING: ThreadSanitizer:"'
+    postfix='2>&1 | grep -A50 "WARNING: ThreadSanitizer:"'
     threads="2"
 
 cat << EOF > tsan.supp
@@ -38,9 +45,9 @@ race:TTEntry::bound
 race:TTEntry::save
 race:TTEntry::value
 race:TTEntry::eval
+race:TTEntry::is_pv
 
 race:TranspositionTable::probe
-race:TranspositionTable::generation
 race:TranspositionTable::hashfull
 
 EOF
@@ -63,7 +70,7 @@ for args in "eval" \
             "go depth 10" \
             "go movetime 1000" \
             "go wtime 8000 btime 8000 winc 500 binc 500" \
-            "bench 128 $threads 10 default depth"
+            "bench 128 $threads 8 default depth"
 do
 
    echo "$prefix $exeprefix ./stockfish $args $postfix"
@@ -73,7 +80,7 @@ done
 
 # more general testing, following an uci protocol exchange
 cat << EOF > game.exp
- set timeout 10
+ set timeout 240
  spawn $exeprefix ./stockfish
 
  send "uci\n"
@@ -91,7 +98,7 @@ cat << EOF > game.exp
  expect "bestmove"
 
  send "position fen 5rk1/1K4p1/8/8/3B4/8/8/8 b - - 0 1\n"
- send "go depth 30\n"
+ send "go depth 20\n"
  expect "bestmove"
 
  send "quit\n"
@@ -102,13 +109,34 @@ cat << EOF > game.exp
  exit \$value
 EOF
 
-for exps in game.exp
+#download TB as needed
+if [ ! -d ../tests/syzygy ]; then
+   curl -sL https://api.github.com/repos/niklasf/python-chess/tarball/9b9aa13f9f36d08aadfabff872882f4ab1494e95 | tar -xzf -
+   mv niklasf-python-chess-9b9aa13 ../tests/syzygy
+fi
+
+cat << EOF > syzygy.exp
+ set timeout 240
+ spawn $exeprefix ./stockfish
+ send "uci\n"
+ send "setoption name SyzygyPath value ../tests/syzygy/\n"
+ expect "info string Found 35 tablebases" {} timeout {exit 1}
+ send "bench 128 1 8 default depth\n"
+ send "quit\n"
+ expect eof
+
+ # return error code of the spawned program, useful for valgrind
+ lassign [wait] pid spawnid os_error_flag value
+ exit \$value
+EOF
+
+for exp in game.exp syzygy.exp
 do
 
-  echo "$prefix expect $exps $postfix"
-  eval "$prefix expect $exps $postfix"
+  echo "$prefix expect $exp $postfix"
+  eval "$prefix expect $exp $postfix"
 
-  rm $exps
+  rm $exp
 
 done