From 504005da87df861dc21ee05d4b9a3d31205c349e Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Thu, 28 Mar 2024 13:30:19 -0700 Subject: [PATCH] scons,tests: Add 'USE_TEST_OBJECTS' kconfig This has the SimObjects defined in "src/test_objects" only be compiled into the gem5 binary if the Kconfig 'USE_TEST_OBJECTS" == 'y'. This happens in two cases: 1. When 'ALL/gem5' is compiled via "build_opts". 2. When tests are run via "./tests/main.py". Change-Id: I2330008fd7c7900de5f4de142b8ac89ef4e351ce --- build_opts/ALL | 1 + src/Kconfig | 1 + src/test_objects/Kconfig | 29 +++++++++++++++++++++++++++++ tests/gem5/fixture.py | 18 ++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 src/test_objects/Kconfig diff --git a/build_opts/ALL b/build_opts/ALL index b44c7a09f7..4f4ae1b8dc 100644 --- a/build_opts/ALL +++ b/build_opts/ALL @@ -7,3 +7,4 @@ USE_POWER_ISA=y USE_RISCV_ISA=y USE_SPARC_ISA=y USE_X86_ISA=y +USE_TEST_OBJECTS=y diff --git a/src/Kconfig b/src/Kconfig index 2d24aad1ad..268f7ca1c5 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -51,3 +51,4 @@ rsource "arch/Kconfig" rsource "cpu/Kconfig" rsource "systemc/Kconfig" rsource "gpu-compute/Kconfig" +rsource "test_objects/Kconfig" diff --git a/src/test_objects/Kconfig b/src/test_objects/Kconfig new file mode 100644 index 0000000000..7a372c73db --- /dev/null +++ b/src/test_objects/Kconfig @@ -0,0 +1,29 @@ +# Copyright (c) 2024 The Regents of the University of California +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +config USE_TEST_OBJECTS + bool "SimObjects used for testing the gem5 simulator" + default n diff --git a/tests/gem5/fixture.py b/tests/gem5/fixture.py index f1fcc38dcc..2b7884674b 100644 --- a/tests/gem5/fixture.py +++ b/tests/gem5/fixture.py @@ -199,6 +199,24 @@ class SConsFixture(UniqueFixture): log.test_log, setconfig_command, time=None, stderr=sys.stderr ) + setconfig_add_test_obj_command = [ + "scons", + "-C", + self.directory, + "--ignore-style", + "--no-compress-debug", + "setconfig", + self.target_dir, + "USE_TEST_OBJECTS=y", + ] + + log_call( + log.test_log, + setconfig_add_test_obj_command, + time=None, + stderr=sys.stderr, + ) + command = [ "scons", "-C",