Get back to original
This commit is contained in:
parent
77ae214d24
commit
5cc9d7b0e9
68 changed files with 83 additions and 42 deletions
62
buildbot/config/worker/blender/test.py
Normal file
62
buildbot/config/worker/blender/test.py
Normal file
|
@ -0,0 +1,62 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# SPDX-FileCopyrightText: 2011-2024 Blender Authors
|
||||
# <pep8 compliant>
|
||||
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from typing import List
|
||||
|
||||
import worker.blender
|
||||
import worker.blender.pack
|
||||
import worker.blender.compile
|
||||
|
||||
|
||||
def get_ctest_arguments(builder: worker.blender.CodeBuilder) -> List[str]:
|
||||
args = ["--output-on-failure"]
|
||||
|
||||
# GPU tests are currently slow and can cause timeouts.
|
||||
if not builder.needs_gpu_tests:
|
||||
args += ["--parallel", "4"]
|
||||
|
||||
args += ["-C", worker.blender.compile.get_cmake_build_type(builder)]
|
||||
return args
|
||||
|
||||
|
||||
def package_for_upload(builder: worker.blender.CodeBuilder, success: bool) -> None:
|
||||
build_tests_dir = builder.build_dir / "tests"
|
||||
package_tests_dir = builder.package_dir / "tests"
|
||||
if not build_tests_dir.exists():
|
||||
return
|
||||
|
||||
os.makedirs(package_tests_dir, exist_ok=True)
|
||||
|
||||
# Upload package on failure
|
||||
if not success:
|
||||
package_filename = "tests-" + worker.blender.pack.get_package_name(builder)
|
||||
package_filepath = package_tests_dir / package_filename
|
||||
shutil.copytree(build_tests_dir, package_filepath)
|
||||
shutil.make_archive(
|
||||
str(package_filepath), "zip", package_tests_dir, package_filename
|
||||
)
|
||||
shutil.rmtree(package_filepath)
|
||||
|
||||
# Always upload unpacked folder for main and release tracks,
|
||||
# when using GPU tests. This is useful for debugging GPU
|
||||
# differences.
|
||||
if builder.track_id != "vexp" and builder.needs_gpu_tests:
|
||||
branch = builder.branch_id.replace("blender-", "").replace("-release", "")
|
||||
name = f"{branch}-{builder.platform}-{builder.architecture}"
|
||||
shutil.copytree(build_tests_dir, package_tests_dir / name)
|
||||
|
||||
|
||||
def test(builder: worker.blender.CodeBuilder) -> None:
|
||||
builder.setup_build_environment()
|
||||
os.chdir(builder.build_dir)
|
||||
success = False
|
||||
|
||||
try:
|
||||
builder.call(["ctest"] + get_ctest_arguments(builder))
|
||||
success = True
|
||||
finally:
|
||||
package_for_upload(builder, success)
|
Loading…
Add table
Add a link
Reference in a new issue