tests,base: Fixed unittests for .fast
authorBobby R. Bruce <bbruce@ucdavis.edu>
Mon, 21 Sep 2020 19:13:08 +0000 (12:13 -0700)
committerBobby R. Bruce <bbruce@ucdavis.edu>
Tue, 22 Sep 2020 01:46:22 +0000 (01:46 +0000)
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>
src/base/intmath.test.cc
src/base/sat_counter.test.cc

index 5740bd4b863d106a27b356b79cc595cda428fe4c..4e88b008869400faaf1130e1079dc3a048eef963 100644 (file)
@@ -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)
 {
index 6de7ef787bb49d04f6910fcda0ccab6c1fe98123..214b015774157500f87d64222dc6ff0f2c34b792 100644 (file)
@@ -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
 }
 
 /**