mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
aa5e6c7295
Summary: Update the copyright & license headers in C++ files to reflect the relicensing to GPLv2 Reviewed By: wez Differential Revision: D15487078 fbshipit-source-id: 19f24c933a64ecad0d3a692d0f8d2a38b4194b1d
80 lines
2.9 KiB
C++
80 lines
2.9 KiB
C++
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This software may be used and distributed according to the terms of the
|
|
* GNU General Public License version 2.
|
|
*/
|
|
#include "eden/fs/utils/ChronoUnit.h"
|
|
|
|
#include <folly/portability/GTest.h>
|
|
|
|
using folly::StringPiece;
|
|
using std::make_pair;
|
|
|
|
namespace {
|
|
std::pair<intmax_t, intmax_t> doLookup(StringPiece name) {
|
|
auto* info = facebook::eden::lookupChronoUnitInfo(name);
|
|
if (!info) {
|
|
return {0, 0};
|
|
}
|
|
return {info->num, info->den};
|
|
}
|
|
|
|
std::pair<intmax_t, intmax_t> subsecond(intmax_t den) {
|
|
return {1, den};
|
|
}
|
|
|
|
std::pair<intmax_t, intmax_t> multisecond(intmax_t num) {
|
|
return {num, 1};
|
|
}
|
|
} // namespace
|
|
|
|
TEST(ChronoUnit, validUnits) {
|
|
EXPECT_EQ(subsecond(1000000000), doLookup("ns"));
|
|
EXPECT_EQ(subsecond(1000000000), doLookup("nanosecond"));
|
|
EXPECT_EQ(subsecond(1000000000), doLookup("nanoseconds"));
|
|
EXPECT_EQ(subsecond(1000000), doLookup("us"));
|
|
EXPECT_EQ(subsecond(1000000), doLookup(u8"\u03BCs"));
|
|
EXPECT_EQ(subsecond(1000000), doLookup("microsecond"));
|
|
EXPECT_EQ(subsecond(1000000), doLookup("microseconds"));
|
|
EXPECT_EQ(subsecond(1000), doLookup("ms"));
|
|
EXPECT_EQ(subsecond(1000), doLookup("millisecond"));
|
|
EXPECT_EQ(subsecond(1000), doLookup("milliseconds"));
|
|
EXPECT_EQ(multisecond(1), doLookup("s"));
|
|
EXPECT_EQ(multisecond(1), doLookup("seconds"));
|
|
EXPECT_EQ(multisecond(1), doLookup("seconds"));
|
|
EXPECT_EQ(multisecond(60), doLookup("m"));
|
|
EXPECT_EQ(multisecond(60), doLookup("min"));
|
|
EXPECT_EQ(multisecond(60), doLookup("minute"));
|
|
EXPECT_EQ(multisecond(60), doLookup("minutes"));
|
|
EXPECT_EQ(multisecond(3600), doLookup("h"));
|
|
EXPECT_EQ(multisecond(3600), doLookup("hr"));
|
|
EXPECT_EQ(multisecond(3600), doLookup("hour"));
|
|
EXPECT_EQ(multisecond(3600), doLookup("hours"));
|
|
EXPECT_EQ(multisecond(86400), doLookup("d"));
|
|
EXPECT_EQ(multisecond(86400), doLookup("day"));
|
|
EXPECT_EQ(multisecond(86400), doLookup("days"));
|
|
EXPECT_EQ(multisecond(604800), doLookup("wk"));
|
|
EXPECT_EQ(multisecond(604800), doLookup("week"));
|
|
EXPECT_EQ(multisecond(604800), doLookup("weeks"));
|
|
EXPECT_EQ(multisecond(2629746), doLookup("mon"));
|
|
EXPECT_EQ(multisecond(2629746), doLookup("month"));
|
|
EXPECT_EQ(multisecond(2629746), doLookup("months"));
|
|
EXPECT_EQ(multisecond(31556952), doLookup("yr"));
|
|
EXPECT_EQ(multisecond(31556952), doLookup("year"));
|
|
EXPECT_EQ(multisecond(31556952), doLookup("years"));
|
|
}
|
|
|
|
TEST(ChronoUnit, invalidUnits) {
|
|
using facebook::eden::lookupChronoUnitInfo;
|
|
using namespace folly::literals::string_piece_literals;
|
|
|
|
EXPECT_EQ(nullptr, lookupChronoUnitInfo(""));
|
|
EXPECT_EQ(nullptr, lookupChronoUnitInfo("bogus"));
|
|
EXPECT_EQ(nullptr, lookupChronoUnitInfo("nanosec"));
|
|
EXPECT_EQ(nullptr, lookupChronoUnitInfo("nanoseconds2"));
|
|
EXPECT_EQ(nullptr, lookupChronoUnitInfo("nanoseconds "));
|
|
EXPECT_EQ(nullptr, lookupChronoUnitInfo("nanoseconds\0"_sp));
|
|
EXPECT_EQ(nullptr, lookupChronoUnitInfo("minus"));
|
|
}
|