package audit: ensure stand-alone test method not include in build-phase testing (#30352)
This commit is contained in:
parent
c9714533f3
commit
011a491b16
@ -276,6 +276,24 @@ def _search_duplicate_specs_in_externals(error_cls):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@package_directives
|
||||||
|
def _check_build_test_callbacks(pkgs, error_cls):
|
||||||
|
"""Ensure stand-alone test method is not included in build-time callbacks"""
|
||||||
|
errors = []
|
||||||
|
for pkg_name in pkgs:
|
||||||
|
pkg = spack.repo.get(pkg_name)
|
||||||
|
test_callbacks = pkg.build_time_test_callbacks
|
||||||
|
|
||||||
|
if test_callbacks and 'test' in test_callbacks:
|
||||||
|
msg = ('{0} package contains "test" method in '
|
||||||
|
'build_time_test_callbacks')
|
||||||
|
instr = ('Remove "test" from: [{0}]'
|
||||||
|
.format(', '.join(test_callbacks)))
|
||||||
|
errors.append(error_cls(msg.format(pkg.name), [instr]))
|
||||||
|
|
||||||
|
return errors
|
||||||
|
|
||||||
|
|
||||||
@package_directives
|
@package_directives
|
||||||
def _check_patch_urls(pkgs, error_cls):
|
def _check_patch_urls(pkgs, error_cls):
|
||||||
"""Ensure that patches fetched from GitHub have stable sha256 hashes."""
|
"""Ensure that patches fetched from GitHub have stable sha256 hashes."""
|
||||||
|
@ -17,6 +17,8 @@
|
|||||||
(['wrong-variant-in-depends-on'], 'PKG-DIRECTIVES'),
|
(['wrong-variant-in-depends-on'], 'PKG-DIRECTIVES'),
|
||||||
# This package has a GitHub patch URL without full_index=1
|
# This package has a GitHub patch URL without full_index=1
|
||||||
(['invalid-github-patch-url'], 'PKG-DIRECTIVES'),
|
(['invalid-github-patch-url'], 'PKG-DIRECTIVES'),
|
||||||
|
# This package has a stand-alone 'test' method in build-time callbacks
|
||||||
|
(['test-build-callbacks'], 'PKG-DIRECTIVES'),
|
||||||
# This package has no issues
|
# This package has no issues
|
||||||
(['mpileaks'], None),
|
(['mpileaks'], None),
|
||||||
# This package has a conflict with a trigger which cannot constrain the constraint
|
# This package has a conflict with a trigger which cannot constrain the constraint
|
||||||
|
@ -16,8 +16,8 @@ class TestBuildCallbacks(Package):
|
|||||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||||
|
|
||||||
phases = ['build', 'install']
|
phases = ['build', 'install']
|
||||||
# set to undefined method
|
# Include undefined method (runtime failure) and 'test' (audit failure)
|
||||||
build_time_test_callbacks = ['undefined-build-test']
|
build_time_test_callbacks = ['undefined-build-test', 'test']
|
||||||
run_after('build')(Package._run_default_build_time_test_callbacks)
|
run_after('build')(Package._run_default_build_time_test_callbacks)
|
||||||
|
|
||||||
def build(self, spec, prefix):
|
def build(self, spec, prefix):
|
||||||
|
Loading…
Reference in New Issue
Block a user