From b45bbef206b27325618e5a1076e092adbb73c6b9 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Mon, 21 Sep 2020 12:13:08 -0700 Subject: [PATCH] tests,base: Fixed unittests for .fast unittests.fast, unittests.prof, and unittests.perf had failing tests due to the stripping of asserts via compiler optimization. This patch alters the unittests to skip these tests when TRACING_ON == 0. Change-Id: I2d4ab795ecfc2c4556b5eb1877635409d0836ec6 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34898 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- src/base/intmath.test.cc | 6 ++++++ src/base/sat_counter.test.cc | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/base/intmath.test.cc b/src/base/intmath.test.cc index 5740bd4b8..4e88b0088 100644 --- a/src/base/intmath.test.cc +++ b/src/base/intmath.test.cc @@ -72,11 +72,17 @@ TEST(IntmathTest, floorLog2) EXPECT_EQ(0, floorLog2((int64_t)1)); } +/* The IntmathDeathTest floorLog2 test is dependent on an assert being + * triggered. We therefore only run this test for .debug and .opt (where + * `TRACING_ON == 1`). + */ +#if TRACING_ON TEST(IntmathDeathTest, floorLog2) { // Verify a non-positive input triggers an assert. EXPECT_DEATH_IF_SUPPORTED(floorLog2(0), "x > 0"); } +#endif TEST(IntmathTest, ceilLog2) { diff --git a/src/base/sat_counter.test.cc b/src/base/sat_counter.test.cc index 6de7ef787..214b01577 100644 --- a/src/base/sat_counter.test.cc +++ b/src/base/sat_counter.test.cc @@ -185,9 +185,13 @@ TEST(SatCounterTest, Shift) ASSERT_EQ(counter, 0); // Make sure the counters cannot be shifted by negative numbers, since - // that is undefined behaviour + // that is undefined behaviour. As these tests depend on asserts failing, + // these tests are only functional if `TRACING_ON == 1`, when gem5 is + // compiled as `debug` or `opt`. + #if TRACING_ON ASSERT_DEATH(counter >>= -1, ""); ASSERT_DEATH(counter <<= -1, ""); + #endif } /** -- 2.30.2