1*1c9035d1SYusra Syeda //===- unittests/Support/UTCTimeTest.cpp ----------------- ----------------===// 2*1c9035d1SYusra Syeda // 3*1c9035d1SYusra Syeda // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*1c9035d1SYusra Syeda // See https://llvm.org/LICENSE.txt for license information. 5*1c9035d1SYusra Syeda // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*1c9035d1SYusra Syeda // 7*1c9035d1SYusra Syeda //===----------------------------------------------------------------------===// 8*1c9035d1SYusra Syeda 9*1c9035d1SYusra Syeda #include "llvm/Support/Chrono.h" 10*1c9035d1SYusra Syeda #include "gtest/gtest.h" 11*1c9035d1SYusra Syeda #include "llvm/Support/CommandLine.h" 12*1c9035d1SYusra Syeda #include "llvm/Support/FormatProviders.h" 13*1c9035d1SYusra Syeda #include "llvm/Support/FormatVariadic.h" 14*1c9035d1SYusra Syeda 15*1c9035d1SYusra Syeda namespace llvm { 16*1c9035d1SYusra Syeda namespace sys { 17*1c9035d1SYusra Syeda namespace { 18*1c9035d1SYusra Syeda TEST(UTCTime,convertutc)19*1c9035d1SYusra SyedaTEST(UTCTime, convertutc) { 20*1c9035d1SYusra Syeda // Get the current time. 21*1c9035d1SYusra Syeda time_t currentTime; 22*1c9035d1SYusra Syeda time(¤tTime); 23*1c9035d1SYusra Syeda 24*1c9035d1SYusra Syeda // Convert with toUtcTime. 25*1c9035d1SYusra Syeda SmallString<15> customResultString; 26*1c9035d1SYusra Syeda raw_svector_ostream T(customResultString); 27*1c9035d1SYusra Syeda T << formatv("{0:%Y-%m-%d %H:%M:%S}", llvm::sys::toUtcTime(currentTime)); 28*1c9035d1SYusra Syeda 29*1c9035d1SYusra Syeda // Convert with gmtime. 30*1c9035d1SYusra Syeda char gmtimeResultString[20]; 31*1c9035d1SYusra Syeda std::tm *gmtimeResult = std::gmtime(¤tTime); 32*1c9035d1SYusra Syeda assert(gmtimeResult != NULL); 33*1c9035d1SYusra Syeda std::strftime(gmtimeResultString, 20, "%Y-%m-%d %H:%M:%S", gmtimeResult); 34*1c9035d1SYusra Syeda 35*1c9035d1SYusra Syeda // Compare the formatted strings. 36*1c9035d1SYusra Syeda EXPECT_EQ(customResultString, StringRef(gmtimeResultString, 19)); 37*1c9035d1SYusra Syeda 38*1c9035d1SYusra Syeda } 39*1c9035d1SYusra Syeda } // namespace 40*1c9035d1SYusra Syeda } // namespace sys 41*1c9035d1SYusra Syeda } // namespace llvm 42