chiark / gitweb /
Fix completion checking in Killer Solo.
[sgt-puzzles.git] / benchmark.sh
1 #!/bin/sh
2
3 # Run every puzzle in benchmarking mode, and generate a file of raw
4 # data that benchmark.pl will format into a web page.
5
6 # If any arguments are provided, use those as the list of games to
7 # benchmark. Otherwise, read the full list from gamedesc.txt.
8 if test $# = 0; then
9     set -- $(cut -f1 -d: < gamedesc.txt)
10 fi
11
12 failures=false
13
14 for game in "$@"; do
15     # Use 'env -i' to suppress any environment variables that might
16     # change the preset list for a puzzle (e.g. user-defined extras)
17     presets=$(env -i ./$game --list-presets | cut -f1 -d' ')
18     for preset in $presets; do
19         if ! env -i ./$game --test-solve --time-generation \
20                             --generate 100 $preset;
21         then
22             echo "${game} ${preset} failed to generate" >&2
23         fi
24     done
25 done
26
27 if $failures; then exit 1; fi