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