Source code for benchbuild.projects.benchbuild.xz

from plumbum import local

from benchbuild import project
from benchbuild.utils import compiler, download, run, wrapping
from benchbuild.utils.cmd import cp, make, tar


[docs]@download.with_wget({'5.2.1': 'http://tukaani.org/xz/xz-5.2.1.tar.gz'}) class XZ(project.Project): """ XZ """ NAME = 'xz' DOMAIN = 'compression' GROUP = 'benchbuild' VERSION = '5.2.1' SRC_FILE = 'xz.tar.gz' testfiles = [ "text.html", "chicken.jpg", "control", "input.source", "liberty.jpg" ]
[docs] def compile(self): self.download() tar('xfz', self.src_file) test_dir = local.path(self.testdir) testfiles = [test_dir / x for x in self.testfiles] cp(testfiles, self.builddir) unpack_dir = local.path('xz-{0}'.format(self.version)) clang = compiler.cc(self) with local.cwd(unpack_dir): configure = local["./configure"] with local.env(CC=str(clang)): run.run(configure["--enable-threads=no", "--with-gnu-ld=yes", "--disable-shared", "--disable-dependency-tracking", "--disable-xzdec", "--disable-lzmadec", "--disable-lzmainfo", "--disable-lzma-links", "--disable-scripts", "--disable-doc"]) run.run(make["CC=" + str(clang), "clean", "all"])
[docs] def run_tests(self, runner): unpack_dir = local.path('xz-{0}'.format(self.version)) _xz = wrapping.wrap(unpack_dir / "src" / "xz" / "xz", self) # Compress runner(_xz["--compress", "-f", "-k", "-e", "-9", "text.html"]) runner(_xz["--compress", "-f", "-k", "-e", "-9", "chicken.jpg"]) runner(_xz["--compress", "-f", "-k", "-e", "-9", "control"]) runner(_xz["--compress", "-f", "-k", "-e", "-9", "input.source"]) runner(_xz["--compress", "-f", "-k", "-e", "-9", "liberty.jpg"]) # Decompress runner(_xz["--decompress", "-f", "-k", "text.html.xz"]) runner(_xz["--decompress", "-f", "-k", "chicken.jpg.xz"]) runner(_xz["--decompress", "-f", "-k", "control.xz"]) runner(_xz["--decompress", "-f", "-k", "input.source.xz"]) runner(_xz["--decompress", "-f", "-k", "liberty.jpg.xz"])