diff options
Diffstat (limited to 'unittests/Support/CachePruningTest.cpp')
-rw-r--r-- | unittests/Support/CachePruningTest.cpp | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/unittests/Support/CachePruningTest.cpp b/unittests/Support/CachePruningTest.cpp index 04ac0d09b4935..1bb57871925c2 100644 --- a/unittests/Support/CachePruningTest.cpp +++ b/unittests/Support/CachePruningTest.cpp @@ -18,7 +18,7 @@ TEST(CachePruningPolicyParser, Empty) { ASSERT_TRUE(bool(P)); EXPECT_EQ(std::chrono::seconds(1200), P->Interval); EXPECT_EQ(std::chrono::hours(7 * 24), P->Expiration); - EXPECT_EQ(75u, P->PercentageOfAvailableSpace); + EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace); } TEST(CachePruningPolicyParser, Interval) { @@ -39,10 +39,30 @@ TEST(CachePruningPolicyParser, Expiration) { EXPECT_EQ(std::chrono::seconds(1), P->Expiration); } -TEST(CachePruningPolicyParser, PercentageOfAvailableSpace) { +TEST(CachePruningPolicyParser, MaxSizePercentageOfAvailableSpace) { auto P = parseCachePruningPolicy("cache_size=100%"); ASSERT_TRUE(bool(P)); - EXPECT_EQ(100u, P->PercentageOfAvailableSpace); + EXPECT_EQ(100u, P->MaxSizePercentageOfAvailableSpace); + EXPECT_EQ(0u, P->MaxSizeBytes); +} + +TEST(CachePruningPolicyParser, MaxSizeBytes) { + auto P = parseCachePruningPolicy("cache_size_bytes=1"); + ASSERT_TRUE(bool(P)); + EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace); + EXPECT_EQ(1u, P->MaxSizeBytes); + P = parseCachePruningPolicy("cache_size_bytes=2k"); + ASSERT_TRUE(bool(P)); + EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace); + EXPECT_EQ(2u * 1024u, P->MaxSizeBytes); + P = parseCachePruningPolicy("cache_size_bytes=3m"); + ASSERT_TRUE(bool(P)); + EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace); + EXPECT_EQ(3u * 1024u * 1024u, P->MaxSizeBytes); + P = parseCachePruningPolicy("cache_size_bytes=4G"); + ASSERT_TRUE(bool(P)); + EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace); + EXPECT_EQ(4ull * 1024ull * 1024ull * 1024ull, P->MaxSizeBytes); } TEST(CachePruningPolicyParser, Multiple) { @@ -50,7 +70,7 @@ TEST(CachePruningPolicyParser, Multiple) { ASSERT_TRUE(bool(P)); EXPECT_EQ(std::chrono::seconds(1200), P->Interval); EXPECT_EQ(std::chrono::seconds(1), P->Expiration); - EXPECT_EQ(50u, P->PercentageOfAvailableSpace); + EXPECT_EQ(50u, P->MaxSizePercentageOfAvailableSpace); } TEST(CachePruningPolicyParser, Errors) { @@ -66,6 +86,12 @@ TEST(CachePruningPolicyParser, Errors) { toString(parseCachePruningPolicy("cache_size=foo%").takeError())); EXPECT_EQ("'101' must be between 0 and 100", toString(parseCachePruningPolicy("cache_size=101%").takeError())); + EXPECT_EQ( + "'foo' not an integer", + toString(parseCachePruningPolicy("cache_size_bytes=foo").takeError())); + EXPECT_EQ( + "'foo' not an integer", + toString(parseCachePruningPolicy("cache_size_bytes=foom").takeError())); EXPECT_EQ("Unknown key: 'foo'", toString(parseCachePruningPolicy("foo=bar").takeError())); } |