summaryrefslogtreecommitdiffstats
path: root/site_scons
diff options
context:
space:
mode:
Diffstat (limited to 'site_scons')
-rw-r--r--site_scons/site_tools/component_builders.py36
1 files changed, 21 insertions, 15 deletions
diff --git a/site_scons/site_tools/component_builders.py b/site_scons/site_tools/component_builders.py
index 9580d7e..1fe638c 100644
--- a/site_scons/site_tools/component_builders.py
+++ b/site_scons/site_tools/component_builders.py
@@ -317,11 +317,19 @@ def ComponentTestProgramDeferred(env):
# Add installed program and resources to the alias
env.Alias(prog_name, all_outputs)
- # Add an alias for running the test in the test directory, if there's a test
- # command line.
- if env.get('COMPONENT_TEST_CMDLINE'):
- # Test program is the first run resource we replicated.
- test_program = env.ReplicatePublished('$TESTS_DIR', prog_name, 'run')
+ # Add target properties
+ env.SetTargetProperty(
+ prog_name,
+ # The copy of the program we care about is the one in the tests dir
+ EXE='$TESTS_DIR/$PROGRAM_NAME',
+ RUN_CMDLINE='$COMPONENT_TEST_CMDLINE',
+ RUN_DIR='$TESTS_DIR',
+ TARGET_PATH='$TESTS_DIR/$PROGRAM_NAME',
+ )
+
+ # Add an alias for running the test in the test directory, if the test is
+ # runnable and has a test command line.
+ if env.get('COMPONENT_TEST_RUNNABLE') and env.get('COMPONENT_TEST_CMDLINE'):
env.Replace(
COMMAND_OUTPUT_CMDLINE=env['COMPONENT_TEST_CMDLINE'],
COMMAND_OUTPUT_RUN_DIR='$TESTS_DIR',
@@ -339,6 +347,11 @@ def ComponentTestProgramDeferred(env):
if timeout:
env['COMMAND_OUTPUT_TIMEOUT'] = timeout
+ # Test program is the first run resource we replicated. (Duplicate
+ # replicate is not harmful, and is a handy way to pick out the correct
+ # file from all those we replicated above.)
+ test_program = env.ReplicatePublished('$TESTS_DIR', prog_name, 'run')
+
# Run the test. Note that we need to refer to the file by name, so that
# SCons will recreate the file node after we've deleted it; if we used the
# env.File() we created in the if statement above, SCons would still think
@@ -350,16 +363,7 @@ def ComponentTestProgramDeferred(env):
env.ComponentTestOutput('run_' + prog_name, test_out)
# Add target properties
- env.SetTargetProperty(
- prog_name,
- # The copy of the program we care about is the one in the tests dir
- EXE='$TESTS_DIR/$PROGRAM_NAME',
- RUN_TARGET='run_' + prog_name,
- RUN_CMDLINE='$COMPONENT_TEST_CMDLINE',
- RUN_DIR='$TESTS_DIR',
- TARGET_PATH='$TESTS_DIR/$PROGRAM_NAME',
- )
-
+ env.SetTargetProperty(prog_name, RUN_TARGET='run_' + prog_name)
def ComponentTestProgram(self, prog_name, *args, **kwargs):
"""Pseudo-builder for test program to handle platform-dependent type.
@@ -534,6 +538,8 @@ def generate(env):
# COMPONENT_TEST_CMDLINE='${SOURCE.abspath}',
# (it generates a SCons error)
COMPONENT_TEST_CMDLINE='${PROGRAM_NAME}',
+ # Component tests are runnable by default.
+ COMPONENT_TEST_RUNNABLE=True,
# Default test size is large
COMPONENT_TEST_SIZE='large',
# Default timeouts for component tests