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

source code of llvm/unittests/Support/UTCTimeTest.cpp