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)20TEST(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