• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 DEBUG_COUNTER(TestCounter, "test-counter",
18               "Counter used for unit test");
19 
TEST(DebugCounterTest,CounterCheck)20 TEST(DebugCounterTest, CounterCheck) {
21   EXPECT_FALSE(DebugCounter::isCounterSet(TestCounter));
22 
23   auto DC = &DebugCounter::instance();
24   DC->push_back("test-counter-skip=1");
25   DC->push_back("test-counter-count=3");
26 
27   EXPECT_TRUE(DebugCounter::isCounterSet(TestCounter));
28 
29   EXPECT_EQ(0, DebugCounter::getCounterValue(TestCounter));
30   EXPECT_FALSE(DebugCounter::shouldExecute(TestCounter));
31 
32   EXPECT_EQ(1, DebugCounter::getCounterValue(TestCounter));
33   EXPECT_TRUE(DebugCounter::shouldExecute(TestCounter));
34 
35   DebugCounter::setCounterValue(TestCounter, 3);
36   EXPECT_TRUE(DebugCounter::shouldExecute(TestCounter));
37   EXPECT_FALSE(DebugCounter::shouldExecute(TestCounter));
38 
39   DebugCounter::setCounterValue(TestCounter, 100);
40   EXPECT_FALSE(DebugCounter::shouldExecute(TestCounter));
41 }
42 #endif
43