| //===- unittests/Support/UTCTimeTest.cpp ----------------- ----------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "llvm/Support/Chrono.h" |
| #include "gtest/gtest.h" |
| #include "llvm/Support/CommandLine.h" |
| #include "llvm/Support/FormatProviders.h" |
| #include "llvm/Support/FormatVariadic.h" |
| |
| namespace llvm { |
| namespace sys { |
| namespace { |
| |
| TEST(UTCTime, convertutc) { |
| // Get the current time. |
| time_t currentTime; |
| time(¤tTime); |
| |
| // Convert with toUtcTime. |
| SmallString<15> customResultString; |
| raw_svector_ostream T(customResultString); |
| T << formatv("{0:%Y-%m-%d %H:%M:%S}", llvm::sys::toUtcTime(currentTime)); |
| |
| // Convert with gmtime. |
| char gmtimeResultString[20]; |
| std::tm *gmtimeResult = std::gmtime(¤tTime); |
| assert(gmtimeResult != NULL); |
| std::strftime(gmtimeResultString, 20, "%Y-%m-%d %H:%M:%S", gmtimeResult); |
| |
| // Compare the formatted strings. |
| EXPECT_EQ(customResultString, StringRef(gmtimeResultString, 19)); |
| |
| } |
| } // namespace |
| } // namespace sys |
| } // namespace llvm |