Index: .gitignore =================================================================== --- .gitignore +++ .gitignore @@ -11,4 +11,12 @@ llvmlab/docs/_build llvmlab/llvmlab.egg-info # Visual Studio Code IDE configuration -.vscode \ No newline at end of file +.vscode +twistd.* +.gitignore +local.cfg +gitpoller-llvm-lnt/ +gitpoller-workdir/ +http.log +master.cfg.sample +state.sqlite Index: buildbot/osuosl/master/config/builders.py =================================================================== --- buildbot/osuosl/master/config/builders.py +++ buildbot/osuosl/master/config/builders.py @@ -20,6 +20,7 @@ from zorg.buildbot.builders import LLDPerformanceTestsuite from zorg.buildbot.builders import FuchsiaBuilder from zorg.buildbot.builders import XToolchainBuilder +from zorg.buildbot.builders import TestSuiteBuilder from zorg.buildbot.builders import HtmlDocsBuilder from zorg.buildbot.builders import DoxygenDocsBuilder @@ -662,10 +663,11 @@ 'tags' : ["clang", "ppc", "ppc64le"], 'workernames' : ["ppc64le-clang-rhel-test"], 'builddir': "clang-ppc64le-rhel", - 'factory' : UnifiedTreeBuilder.getCmakeWithNinjaBuildFactory( + 'factory' : TestSuiteBuilder.getTestSuiteBuildFactory( depends_on_projects=["llvm", "clang", "clang-tools-extra", "lld", "compiler-rt"], checks=["check"], enable_runtimes="auto", + jobs=96, extra_configure_args=[ "-DLLVM_ENABLE_ASSERTIONS=On", "-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++", Index: zorg/buildbot/builders/TestSuiteBuilder.py =================================================================== --- /dev/null +++ zorg/buildbot/builders/TestSuiteBuilder.py @@ -0,0 +1,96 @@ +from zorg.buildbot.builders.UnifiedTreeBuilder import getCmakeWithNinjaBuildFactory as _getCmakeWithNinjaBuildFactory + +from buildbot.plugins import steps, util + +from zorg.buildbot.commands.CmakeCommand import CmakeCommand +from zorg.buildbot.commands.NinjaCommand import NinjaCommand +from zorg.buildbot.commands.LitTestCommand import LitTestCommand + +def addTestSuiteStep( + f, + compiler_dir = None, + jobs = None, + env = None, + lit_args = [], + **kwargs): + + cc = util.Interpolate('-DCMAKE_C_COMPILER=' + '%(prop:builddir)s/'+compiler_dir+'/bin/clang') + cxx = util.Interpolate('-DCMAKE_CXX_COMPILER=' + '%(prop:builddir)s/'+compiler_dir+'/bin/clang++') + lit = util.Interpolate('%(prop:builddir)s/' + compiler_dir + '/bin/llvm-lit') + test_suite_src_dir = util.Interpolate('%(prop:builddir)s/' + 'test/test-suite') + cmake_lit_arg = util.Interpolate('-DTEST_SUITE_LIT:FILEPATH=' + '%(prop:builddir)s/' + compiler_dir + '/bin/llvm-lit') + test_suite_workdir='test/sandbox/test-suite' + options = [cc, cxx, cmake_lit_arg] + + f.addGetSourcecodeForProject( + project='test-suite', + src_dir=test_suite_src_dir, + alwaysUseLatest=True) + + f.addStep(CmakeCommand(name='cmake Test Suite', + haltOnFailure=True, + description='Running cmake on Test Suite dir', + workdir=test_suite_workdir, + options=options, + path=test_suite_src_dir, + generator='Ninja')) + + f.addStep(NinjaCommand(name='ninja Test Suite', + description='Running Ninja on Test Suite dir', + haltOnFailure=True, + jobs=jobs, + workdir=test_suite_workdir)) + + f.addStep(LitTestCommand(name='Run Test Suite with lit', + haltOnFailure=True, + description='Running test suite tests', + workdir=test_suite_workdir, + command=[lit] + lit_args + ['.'], + env=env, + **kwargs)) + + return f + +def getTestSuiteBuildFactory( + depends_on_projects = None, + enable_runtimes = None, + targets = None, + llvm_srcdir = None, + obj_dir = None, + checks = None, + install_dir = None, + clean = False, + jobs = 20, + extra_configure_args = None, + env = None, + **kwargs): + + lit_args = list() + if any("DLLVM_LIT_ARGS" in arg for arg in extra_configure_args): + arg = [arg for arg in extra_configure_args + if "DLLVM_LIT_ARGS" in arg][0] + lit_args = arg.split("=")[1] + lit_args = lit_args.split(" ") + + f = _getCmakeWithNinjaBuildFactory( + depends_on_projects = depends_on_projects, + enable_runtimes = enable_runtimes, + targets = targets, + llvm_srcdir = llvm_srcdir, + obj_dir = obj_dir, + checks = checks, + install_dir = install_dir, + clean = clean, + extra_configure_args = extra_configure_args, + env = env, + **kwargs) + + + addTestSuiteStep(f, + compiler_dir=f.obj_dir, + env=env, + jobs=jobs, + lit_args=lit_args, + **kwargs) + + return f