Home | History | Annotate | Download | only in Support
      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 
     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