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 <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
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)
{
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
}
/**