summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support/DebugCounterTest.cpp
diff options
context:
space:
mode:
authorGeorge Burgess IV <george.burgess.iv@gmail.com>2018-07-23 21:49:36 +0000
committerGeorge Burgess IV <george.burgess.iv@gmail.com>2018-07-23 21:49:36 +0000
commitb00fb46479a3f9217408e007b02bb2200e7d6a19 (patch)
treec95676d9b91ee4d21db4b3995ac91e28a94f0098 /llvm/unittests/Support/DebugCounterTest.cpp
parentd9c254771dcdb8bd5e39aada5b8336a4bff52195 (diff)
downloadbcm5719-llvm-b00fb46479a3f9217408e007b02bb2200e7d6a19.tar.gz
bcm5719-llvm-b00fb46479a3f9217408e007b02bb2200e7d6a19.zip
[DebugCounters] Keep track of total counts
This patch makes debug counters keep track of the total number of times we've called `shouldExecute` for each counter, so it's easier to build automated tooling on top of these. A patch to print these counts is coming soon. Patch by Zhizhou Yang! Differential Revision: https://reviews.llvm.org/D49560 llvm-svn: 337748
Diffstat (limited to 'llvm/unittests/Support/DebugCounterTest.cpp')
-rw-r--r--llvm/unittests/Support/DebugCounterTest.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/llvm/unittests/Support/DebugCounterTest.cpp b/llvm/unittests/Support/DebugCounterTest.cpp
new file mode 100644
index 00000000000..f3c2817a22e
--- /dev/null
+++ b/llvm/unittests/Support/DebugCounterTest.cpp
@@ -0,0 +1,42 @@
+//===- llvm/unittest/Support/DebugCounterTest.cpp -------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Support/DebugCounter.h"
+#include "gtest/gtest.h"
+
+#include <string>
+using namespace llvm;
+
+#ifndef NDEBUG
+DEBUG_COUNTER(TestCounter, "test-counter",
+ "Counter used for unit test");
+
+TEST(DebugCounterTest, CounterCheck) {
+ EXPECT_FALSE(DebugCounter::isCounterSet(TestCounter));
+
+ auto DC = &DebugCounter::instance();
+ DC->push_back("test-counter-skip=1");
+ DC->push_back("test-counter-count=3");
+
+ EXPECT_TRUE(DebugCounter::isCounterSet(TestCounter));
+
+ EXPECT_EQ(0, DebugCounter::getCounterValue(TestCounter));
+ EXPECT_FALSE(DebugCounter::shouldExecute(TestCounter));
+
+ EXPECT_EQ(1, DebugCounter::getCounterValue(TestCounter));
+ EXPECT_TRUE(DebugCounter::shouldExecute(TestCounter));
+
+ DebugCounter::setCounterValue(TestCounter, 3);
+ EXPECT_TRUE(DebugCounter::shouldExecute(TestCounter));
+ EXPECT_FALSE(DebugCounter::shouldExecute(TestCounter));
+
+ DebugCounter::setCounterValue(TestCounter, 100);
+ EXPECT_FALSE(DebugCounter::shouldExecute(TestCounter));
+}
+#endif
OpenPOWER on IntegriCloud