Pavilion Builder Objects
pavilion.pav_test module
Contains the object for tracking multi-threaded builds, along with the TestBuilder class itself.
- class pavilion.builder.TestBuilder(pav_cfg: PavConfig, working_dir: Path, config: dict, script: Path, status: TestStatusFile, download_dest: Path, templates: Dict[Path, Path] | None = None, spack_config: dict | None = None, build_name=None)
Bases:
objectManages a test build and their organization.
- Variables:
_BLOCK_SIZE (int) – Chunk size when reading and hashing files.
BUILD_HASH_BYTES (int) – Number of bytes in the build hash (1/2 the chars)
DEPRECATED (str) – The name of the build deprecation file.
~.path (Path) – The intended location of this build in the build directory.
fail_path (Path) – Where this build will be placed if it fails.
name (str) – The name of this build.
- BUILD_HASH_BYTES = 8
- DEPRECATED = '.pav_deprecated_build'
- DOWNLOAD_HASH_SIZE = 13
- FINISHED_SUFFIX = '.finished'
- LOG_NAME = 'pav_build_log'
- TAR_SUBTYPES = ('gzip', 'x-gzip', 'x-bzip2', 'x-xz', 'x-tar', 'x-lzma')
- build(test_id: str, tracker: BuildTracker, cancel_event: Event | None = None) bool
Perform the build if needed, do a soft-link copy of the build directory into our test directory, and note that we’ve used the given build.
- Parameters:
test_id – The test id for the test initiating this build.
tracker – A thread-safe tracker object for keeping info on what the build is doing.
cancel_event – Allows builds to tell each other to die.
- Returns:
True if these steps completed successfully.
- property build_hash: str
Get the cached build hash, if it exists. Otherwise, create it and cache it.
- copy_build(dest: Path)
Copy the build (using ‘symlink’ copying to the destination.
- Parameters:
dest – Where to copy the build to.
- Raises:
TestBuilderError – When copy errors happen
- Returns:
True on success, False on failure
- create_spack_env(build_dir)
Creates a spack.yaml file in the build dir, so that each unique build can activate it’s own spack environment.
- deprecate()
Deprecate this build, so that it will be rebuilt if any other test run wants to use it.
- exists()
Return True if the given build exists.
- log_updated() float | None
Return the last time the build log was updated. Simply returns None if the log can’t be found or read.
- name_build() str
Search for the first non-deprecated version of this build (whether or not it exists) and name the build for it.
- classmethod rehash_name(name: str) str
Rehash the given build name with the given version.
- rename_build()
Rechecks deprecation and updates the build name.
- property suite_subdir: Path | None