Feature: Allow re-use of run_test() in install_time_test_callbacks (#26594)

Allow re-use of run_test() in install_time_test_callbacks

Co-authored-by: Greg Becker <becker33@llnl.gov>
This commit is contained in:
Tamara Dahlgren
2022-04-26 17:40:05 -07:00
committed by GitHub
parent e49cccb0d9
commit 0c31ab87c9
6 changed files with 167 additions and 54 deletions

View File

@@ -0,0 +1,31 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
from spack.package import run_after
class TestBuildCallbacks(Package):
"""This package illustrates build callback test failure."""
homepage = "http://www.example.com/test-build-callbacks"
url = "http://www.test-failure.test/test-build-callbacks-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
phases = ['build', 'install']
# set to undefined method
build_time_test_callbacks = ['undefined-build-test']
run_after('build')(Package._run_default_build_time_test_callbacks)
def build(self, spec, prefix):
pass
def install(self, spec, prefix):
mkdirp(prefix.bin)
def test(self):
print('test: running test-build-callbacks')
print('PASSED')

View File

@@ -0,0 +1,27 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
from spack.package import run_after
class TestInstallCallbacks(Package):
"""This package illustrates install callback test failure."""
homepage = "http://www.example.com/test-install-callbacks"
url = "http://www.test-failure.test/test-install-callbacks-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
# Include an undefined callback method
install_time_test_callbacks = ['undefined-install-test', 'test']
run_after('install')(Package._run_default_install_time_test_callbacks)
def install(self, spec, prefix):
mkdirp(prefix.bin)
def test(self):
print('test: test-install-callbacks')
print('PASSED')