From: Joost VandeVondele Date: Fri, 30 Mar 2018 08:21:59 +0000 (+0200) Subject: Integrate syzygy in automated testing (v2). X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=c959871a59d106aa0294916890c31c475aa195ea Integrate syzygy in automated testing (v2). Extends valgrind/sanitizer testing to cover syzygy code. The script downloads 4 man syzygy as needed. The time needed for the additional testing is small (in fact hard to see a difference compared to the large fluctuations in testing time in travis). Possible follow-ups: * include more TB sensitive positions in bench. * include the test script of recent commit "Refactor tbprobe.cpp". * verify unchanged bench with TB (with a long run). * make the TB part of the continuation integration tests optional. Closes https://github.com/official-stockfish/Stockfish/pull/1518 and https://github.com/official-stockfish/Stockfish/pull/1490 No functional change. --- diff --git a/.travis.yml b/.travis.yml index 1168664d..ded29e47 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ matrix: addons: apt: sources: ['ubuntu-toolchain-r-test'] - packages: ['g++-7', 'g++-7-multilib', 'g++-multilib', 'valgrind', 'expect'] + packages: ['g++-7', 'g++-7-multilib', 'g++-multilib', 'valgrind', 'expect', 'curl'] env: - COMPILER=g++-7 - COMP=gcc @@ -19,7 +19,7 @@ matrix: addons: apt: sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0'] - packages: ['clang-5.0', 'llvm-5.0-dev', 'g++-multilib', 'valgrind', 'expect'] + packages: ['clang-5.0', 'llvm-5.0-dev', 'g++-multilib', 'valgrind', 'expect', 'curl'] env: - COMPILER=clang++-5.0 - COMP=clang diff --git a/tests/instrumented.sh b/tests/instrumented.sh index 2cae793c..137d0e4a 100755 --- a/tests/instrumented.sh +++ b/tests/instrumented.sh @@ -108,13 +108,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 10 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