diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-08-31 13:13:29 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-09-02 18:37:22 +0300 |
commit | 283d96de1170f7c42a43bde4e30fdb438939978f (patch) | |
tree | 4a1510bfb15b13eb379dc347eb40716578f0b4a4 /build_files/buildbot/slave_test.py | |
parent | a5650961090a6f70d28d5e448ecfe63e352c9ac5 (diff) |
Buildbot: refactor all build slave code
* Move common code into buildbot_utils.py
* Remove legacy code from removed builders
* Split code into smaller functions
Differential Revision: https://developer.blender.org/D5642
Diffstat (limited to 'build_files/buildbot/slave_test.py')
-rw-r--r-- | build_files/buildbot/slave_test.py | 66 |
1 files changed, 23 insertions, 43 deletions
diff --git a/build_files/buildbot/slave_test.py b/build_files/buildbot/slave_test.py index ff186d8cd45..1b6b426b621 100644 --- a/build_files/buildbot/slave_test.py +++ b/build_files/buildbot/slave_test.py @@ -18,59 +18,39 @@ # <pep8 compliant> -import subprocess +import buildbot_utils import os import sys -# get builder name -if len(sys.argv) < 2: - sys.stderr.write("Not enough arguments, expecting builder name\n") - sys.exit(1) +def get_ctest_environment(builder): + info = buildbot_utils.VersionInfo(builder) + blender_version_dir = os.path.join(builder.install_dir, info.version) -builder = sys.argv[1] + env = os.environ.copy() + env['BLENDER_SYSTEM_SCRIPTS'] = os.path.join(blender_version_dir, 'scripts') + env['BLENDER_SYSTEM_DATAFILES'] = os.path.join(blender_version_dir, 'datafiles') + return env -# we run from build/ directory -blender_dir = '../blender.git' +def get_ctest_arguments(builder): + args = ['--output-on-failure'] + if builder.platform == 'win': + args += ['-C', 'Release'] + return args -if "cmake" in builder: - print("Automated tests are still DISABLED!") - sys.exit(0) - - build_dir = os.path.abspath(os.path.join('..', 'build', builder)) - install_dir = os.path.abspath(os.path.join('..', 'install', builder)) - # NOTE: For quick test only to see if the approach work. - # n the future must be replaced with an actual blender version. - blender_version = '2.80' - blender_version_dir = os.path.join(install_dir, blender_version) - command_prefix = [] - extra_ctest_args = [] +def test(builder): + os.chdir(builder.build_dir) - if builder.startswith('win'): - extra_ctest_args += ['-C', 'Release'] - elif builder.startswith('linux'): - tokens = builder.split("_") - glibc = tokens[1] - if glibc == 'glibc224': - deb_name = "stretch" - if builder.endswith('x86_64_cmake'): - chroot_name = 'buildbot_' + deb_name + '_x86_64' - elif builder.endswith('i686_cmake'): - chroot_name = 'buildbot_' + deb_name + '_i686' - command_prefix = ['schroot', '--preserve-environment', '-c', chroot_name, '--'] - elif glibc == 'glibc217': - command_prefix = ['scl', 'enable', 'devtoolset-6', '--'] + command = builder.command_prefix + ['ctest'] + get_ctest_arguments(builder) + ctest_env = get_ctest_environment(builder) + buildbot_utils.call(command, env=ctest_env, exit_on_error=False) - ctest_env = os.environ.copy() - ctest_env['BLENDER_SYSTEM_SCRIPTS'] = os.path.join(blender_version_dir, 'scripts') - ctest_env['BLENDER_SYSTEM_DATAFILES'] = os.path.join(blender_version_dir, 'datafiles') +if __name__ == "__main__": + print("Automated tests are still DISABLED!") + sys.exit(0) - os.chdir(build_dir) - retcode = subprocess.call(command_prefix + ['ctest', '--output-on-failure'] + extra_ctest_args, - env=ctest_env) + builder = buildbot_utils.create_builder_from_arguments() + test(builder) # Always exit with a success, for until we know all the tests are passing # on all builders. sys.exit(0) -else: - print("Unknown building system") - sys.exit(1) |