diff options
Diffstat (limited to 'absl/time/duration_test.cc')
-rw-r--r-- | absl/time/duration_test.cc | 53 |
1 files changed, 17 insertions, 36 deletions
diff --git a/absl/time/duration_test.cc b/absl/time/duration_test.cc index b7abf4ba..dcf7aad6 100644 --- a/absl/time/duration_test.cc +++ b/absl/time/duration_test.cc @@ -16,8 +16,9 @@ #include <winsock2.h> // for timeval #endif -#include <chrono> // NOLINT(build/c++11) +#include <array> #include <cfloat> +#include <chrono> // NOLINT(build/c++11) #include <cmath> #include <cstdint> #include <ctime> @@ -28,6 +29,7 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" +#include "absl/strings/str_format.h" #include "absl/time/time.h" namespace { @@ -349,11 +351,6 @@ TEST(Duration, ToChrono) { } TEST(Duration, FactoryOverloads) { -#if defined(ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT) && \ - ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT - GTEST_SKIP(); -#endif - enum E { kOne = 1 }; #define TEST_FACTORY_OVERLOADS(NAME) \ EXPECT_EQ(1, NAME(kOne) / NAME(kOne)); \ @@ -884,11 +881,6 @@ TEST(Duration, RelationalOperators) { } TEST(Duration, Addition) { -#if defined(ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT) && \ - ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT - GTEST_SKIP(); -#endif - #define TEST_ADD_OPS(UNIT) \ do { \ EXPECT_EQ(UNIT(2), UNIT(1) + UNIT(1)); \ @@ -982,11 +974,6 @@ TEST(Duration, Negation) { } TEST(Duration, AbsoluteValue) { -#if defined(ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT) && \ - ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT - GTEST_SKIP(); -#endif - EXPECT_EQ(absl::ZeroDuration(), AbsDuration(absl::ZeroDuration())); EXPECT_EQ(absl::Seconds(1), AbsDuration(absl::Seconds(1))); EXPECT_EQ(absl::Seconds(1), AbsDuration(absl::Seconds(-1))); @@ -1004,11 +991,6 @@ TEST(Duration, AbsoluteValue) { } TEST(Duration, Multiplication) { -#if defined(ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT) && \ - ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT - GTEST_SKIP(); -#endif - #define TEST_MUL_OPS(UNIT) \ do { \ EXPECT_EQ(UNIT(5), UNIT(2) * 2.5); \ @@ -1261,11 +1243,6 @@ TEST(Duration, RoundTripUnits) { } TEST(Duration, TruncConversions) { -#if defined(ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT) && \ - ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT - GTEST_SKIP(); -#endif - // Tests ToTimespec()/DurationFromTimespec() const struct { absl::Duration d; @@ -1562,11 +1539,6 @@ TEST(Duration, ConversionSaturation) { } TEST(Duration, FormatDuration) { -#if defined(ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT) && \ - ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT - GTEST_SKIP(); -#endif - // Example from Go's docs. EXPECT_EQ("72h3m0.5s", absl::FormatDuration(absl::Hours(72) + absl::Minutes(3) + @@ -1701,11 +1673,6 @@ TEST(Duration, FormatDuration) { } TEST(Duration, ParseDuration) { -#if defined(ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT) && \ - ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT - GTEST_SKIP(); -#endif - absl::Duration d; // No specified unit. Should only work for zero and infinity. @@ -1853,4 +1820,18 @@ TEST(Duration, FormatParseRoundTrip) { #undef TEST_PARSE_ROUNDTRIP } +TEST(Duration, AbslStringify) { + // FormatDuration is already well tested, so just use one test case here to + // verify that StrFormat("%v", d) works as expected. + absl::Duration d = absl::Seconds(1); + EXPECT_EQ(absl::StrFormat("%v", d), absl::FormatDuration(d)); +} + +TEST(Duration, NoPadding) { + // Should match the size of a struct with uint32_t alignment and no padding. + using NoPadding = std::array<uint32_t, 3>; + EXPECT_EQ(sizeof(NoPadding), sizeof(absl::Duration)); + EXPECT_EQ(alignof(NoPadding), alignof(absl::Duration)); +} + } // namespace |