Source code for benchbuild.projects.benchbuild.ruby
from plumbum import local
from benchbuild import project
from benchbuild.settings import CFG
from benchbuild.utils import compiler, download, run, wrapping
from benchbuild.utils.cmd import make, ruby, tar
[docs]@download.with_wget({
'2.2.2':
'http://cache.ruby-lang.org/pub/ruby/2.2.2/ruby-2.2.2.tar.gz'
})
class Ruby(project.Project):
NAME = 'ruby'
DOMAIN = 'compilation'
GROUP = 'benchbuild'
VERSION = '2.2.2'
SRC_FILE = 'ruby.tar.gz'
[docs] def compile(self):
self.download()
tar("xfz", self.src_file)
unpack_dir = local.path('ruby-{0}'.format(self.version))
clang = compiler.cc(self)
clang_cxx = compiler.cxx(self)
with local.cwd(unpack_dir):
with local.env(CC=str(clang), CXX=str(clang_cxx)):
configure = local["./configure"]
run.run(
configure["--with-static-linked-ext", "--disable-shared"])
run.run(make["-j", CFG["jobs"]])
[docs] def run_tests(self, runner):
unpack_dir = local.path('ruby-{0}'.format(self.version))
ruby_n = wrapping.wrap(unpack_dir / "ruby", self)
testdir = local.path(self.testdir)
with local.env(RUBYOPT=""):
run.run(ruby[testdir / "benchmark" / "run.rb", "--ruby=\"" +
str(ruby_n) + "\"", "--opts=\"-I" + testdir / "lib" +
" -I" + testdir / "." + " -I" +
testdir / ".ext" / "common" + "\"", "-r"])