brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · ee06c70 Raw
59 lines · cpp
1//===-- Unittests for ctime_r ---------------------------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "src/time/ctime_r.h"10#include "src/time/time_constants.h"11#include "test/UnitTest/ErrnoCheckingTest.h"12#include "test/UnitTest/Test.h"13#include "test/src/time/TmHelper.h"14 15using LlvmLibcCtimeR = LIBC_NAMESPACE::testing::ErrnoCheckingTest;16 17TEST_F(LlvmLibcCtimeR, Nullptr) {18  char *result;19  result = LIBC_NAMESPACE::ctime_r(nullptr, nullptr);20  ASSERT_STREQ(nullptr, result);21 22  char buffer[LIBC_NAMESPACE::time_constants::ASCTIME_BUFFER_SIZE];23  result = LIBC_NAMESPACE::ctime_r(nullptr, buffer);24  ASSERT_STREQ(nullptr, result);25 26  time_t t;27  result = LIBC_NAMESPACE::ctime_r(&t, nullptr);28  ASSERT_STREQ(nullptr, result);29}30 31TEST_F(LlvmLibcCtimeR, ValidUnixTimestamp0) {32  char buffer[LIBC_NAMESPACE::time_constants::ASCTIME_BUFFER_SIZE];33  time_t t;34  char *result;35  // 1970-01-01 00:00:00. Test with a valid buffer size.36  t = 0;37  result = LIBC_NAMESPACE::ctime_r(&t, buffer);38  ASSERT_STREQ("Thu Jan  1 00:00:00 1970\n", result);39}40 41TEST_F(LlvmLibcCtimeR, ValidUnixTimestamp32Int) {42  char buffer[LIBC_NAMESPACE::time_constants::ASCTIME_BUFFER_SIZE];43  time_t t;44  char *result;45  // 2038-01-19 03:14:07. Test with a valid buffer size.46  t = 2147483647;47  result = LIBC_NAMESPACE::ctime_r(&t, buffer);48  ASSERT_STREQ("Tue Jan 19 03:14:07 2038\n", result);49}50 51TEST_F(LlvmLibcCtimeR, InvalidArgument) {52  char buffer[LIBC_NAMESPACE::time_constants::ASCTIME_BUFFER_SIZE];53  time_t t;54  char *result;55  t = 2147483648;56  result = LIBC_NAMESPACE::ctime_r(&t, buffer);57  ASSERT_STREQ(nullptr, result);58}59