xref: /llvm-project/llvm/unittests/Support/DebugCounterTest.cpp (revision bc2f06c9ef58518b357c3e6399895c0b90db9ff1)
1 //===- llvm/unittest/Support/DebugCounterTest.cpp -------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #include "llvm/Support/DebugCounter.h"
11 #include "gtest/gtest.h"
12 
13 #include <string>
14 using namespace llvm;
15 
16 #ifndef NDEBUG
17 TEST(DebugCounterTest, CounterCheck) {
18   DEBUG_COUNTER(TestCounter, "test-counter", "Counter used for unit test");
19 
20   EXPECT_FALSE(DebugCounter::isCounterSet(TestCounter));
21 
22   auto DC = &DebugCounter::instance();
23   DC->push_back("test-counter-skip=1");
24   DC->push_back("test-counter-count=3");
25 
26   EXPECT_TRUE(DebugCounter::isCounterSet(TestCounter));
27 
28   EXPECT_EQ(0, DebugCounter::getCounterValue(TestCounter));
29   EXPECT_FALSE(DebugCounter::shouldExecute(TestCounter));
30 
31   EXPECT_EQ(1, DebugCounter::getCounterValue(TestCounter));
32   EXPECT_TRUE(DebugCounter::shouldExecute(TestCounter));
33 
34   DebugCounter::setCounterValue(TestCounter, 3);
35   EXPECT_TRUE(DebugCounter::shouldExecute(TestCounter));
36   EXPECT_FALSE(DebugCounter::shouldExecute(TestCounter));
37 
38   DebugCounter::setCounterValue(TestCounter, 100);
39   EXPECT_FALSE(DebugCounter::shouldExecute(TestCounter));
40 }
41 #endif
42