Source code for benchbuild.projects.benchbuild.crafty

from plumbum import local

from benchbuild import project
from benchbuild.utils import compiler, download, run, wrapping
from benchbuild.utils.cmd import cat, make, mkdir, mv, unzip


[docs]@download.with_wget({ "25.2": "http://www.craftychess.com/downloads/source/crafty-25.2.zip" }) class Crafty(project.Project): """ crafty benchmark """ NAME = 'crafty' DOMAIN = 'scientific' GROUP = 'benchbuild' VERSION = '25.2' SRC_FILE = "crafty.zip"
[docs] def compile(self): self.download() book_file = "book.bin" book_bin = "http://www.craftychess.com/downloads/book/" + book_file download.Wget(book_bin, book_file) unpack_dir = "crafty.src" mkdir(unpack_dir) with local.cwd(unpack_dir): unzip(local.path("..") / self.src_file) mv(book_file, unpack_dir) clang = compiler.cc(self) with local.cwd(unpack_dir): target_opts = ["-DCPUS=1", "-DSYZYGY", "-DTEST"] crafty_make = make["target=UNIX", "CC=" + str(clang), "opt=" + " ".join(target_opts), "crafty-make"] run.run(crafty_make)
[docs] def run_tests(self, runner): unpack_dir = "crafty.src" with local.cwd(unpack_dir): crafty = wrapping.wrap("./crafty", self) testdir = local.path(self.testdir) runner((cat[testdir / "test1.sh"] | crafty), retcode=[0, 120]) runner((cat[testdir / "test2.sh"] | crafty), retcode=[0, 120])