1 //===- unittests/TimerTest.cpp - Timer tests ------------------------------===// 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/Timer.h" 11 #include "llvm/Support/thread.h" 12 #include "gtest/gtest.h" 13 #include <chrono> 14 15 using namespace llvm; 16 17 namespace { 18 19 TEST(Timer, Additivity) { 20 Timer T1("T1"); 21 22 EXPECT_TRUE(T1.isInitialized()); 23 24 T1.startTimer(); 25 T1.stopTimer(); 26 auto TR1 = T1.getTotalTime(); 27 28 T1.startTimer(); 29 std::this_thread::sleep_for(std::chrono::milliseconds(1)); 30 T1.stopTimer(); 31 auto TR2 = T1.getTotalTime(); 32 33 EXPECT_TRUE(TR1 < TR2); 34 } 35 36 TEST(Timer, CheckIfTriggered) { 37 Timer T1("T1"); 38 39 EXPECT_FALSE(T1.hasTriggered()); 40 T1.startTimer(); 41 EXPECT_TRUE(T1.hasTriggered()); 42 T1.stopTimer(); 43 EXPECT_TRUE(T1.hasTriggered()); 44 45 T1.clear(); 46 EXPECT_FALSE(T1.hasTriggered()); 47 } 48 49 } // end anon namespace 50