annotate unittests/Support/CachePruningTest.cpp @ 146:3fc4d5c3e21e

set tail call flag for code segment in CGCAll
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 19:23:36 +0900
parents 3a76565eade5
children c2174574ed3a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
121
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
1 //===- CachePruningTest.cpp -----------------------------------------------===//
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
2 //
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
3 // The LLVM Compiler Infrastructure
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
4 //
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
5 // This file is distributed under the University of Illinois Open Source
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
6 // License. See LICENSE.TXT for details.
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
7 //
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
8 //===----------------------------------------------------------------------===//
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
9
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
10 #include "llvm/Support/CachePruning.h"
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
11 #include "llvm/Support/Error.h"
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
12 #include "gtest/gtest.h"
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
13
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
14 using namespace llvm;
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
15
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
16 TEST(CachePruningPolicyParser, Empty) {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
17 auto P = parseCachePruningPolicy("");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
18 ASSERT_TRUE(bool(P));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
19 EXPECT_EQ(std::chrono::seconds(1200), P->Interval);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
20 EXPECT_EQ(std::chrono::hours(7 * 24), P->Expiration);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
21 EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
22 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
23
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
24 TEST(CachePruningPolicyParser, Interval) {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
25 auto P = parseCachePruningPolicy("prune_interval=1s");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
26 ASSERT_TRUE(bool(P));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
27 EXPECT_EQ(std::chrono::seconds(1), P->Interval);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
28 P = parseCachePruningPolicy("prune_interval=2m");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
29 ASSERT_TRUE(bool(P));
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
30 EXPECT_EQ(std::chrono::minutes(2), *P->Interval);
121
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
31 P = parseCachePruningPolicy("prune_interval=3h");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
32 ASSERT_TRUE(bool(P));
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
33 EXPECT_EQ(std::chrono::hours(3), *P->Interval);
121
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
34 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
35
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
36 TEST(CachePruningPolicyParser, Expiration) {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
37 auto P = parseCachePruningPolicy("prune_after=1s");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
38 ASSERT_TRUE(bool(P));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
39 EXPECT_EQ(std::chrono::seconds(1), P->Expiration);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
40 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
41
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
42 TEST(CachePruningPolicyParser, MaxSizePercentageOfAvailableSpace) {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
43 auto P = parseCachePruningPolicy("cache_size=100%");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
44 ASSERT_TRUE(bool(P));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
45 EXPECT_EQ(100u, P->MaxSizePercentageOfAvailableSpace);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
46 EXPECT_EQ(0u, P->MaxSizeBytes);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
47 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
48
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
49 TEST(CachePruningPolicyParser, MaxSizeBytes) {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
50 auto P = parseCachePruningPolicy("cache_size_bytes=1");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
51 ASSERT_TRUE(bool(P));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
52 EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
53 EXPECT_EQ(1u, P->MaxSizeBytes);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
54 P = parseCachePruningPolicy("cache_size_bytes=2k");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
55 ASSERT_TRUE(bool(P));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
56 EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
57 EXPECT_EQ(2u * 1024u, P->MaxSizeBytes);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
58 P = parseCachePruningPolicy("cache_size_bytes=3m");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
59 ASSERT_TRUE(bool(P));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
60 EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
61 EXPECT_EQ(3u * 1024u * 1024u, P->MaxSizeBytes);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
62 P = parseCachePruningPolicy("cache_size_bytes=4G");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
63 ASSERT_TRUE(bool(P));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
64 EXPECT_EQ(75u, P->MaxSizePercentageOfAvailableSpace);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
65 EXPECT_EQ(4ull * 1024ull * 1024ull * 1024ull, P->MaxSizeBytes);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
66 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
67
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
68 TEST(CachePruningPolicyParser, Multiple) {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
69 auto P = parseCachePruningPolicy("prune_after=1s:cache_size=50%");
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
70 ASSERT_TRUE(bool(P));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
71 EXPECT_EQ(std::chrono::seconds(1200), P->Interval);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
72 EXPECT_EQ(std::chrono::seconds(1), P->Expiration);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
73 EXPECT_EQ(50u, P->MaxSizePercentageOfAvailableSpace);
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
74 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
75
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
76 TEST(CachePruningPolicyParser, Errors) {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
77 EXPECT_EQ("Duration must not be empty",
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
78 toString(parseCachePruningPolicy("prune_interval=").takeError()));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
79 EXPECT_EQ("'foo' not an integer",
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
80 toString(parseCachePruningPolicy("prune_interval=foos").takeError()));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
81 EXPECT_EQ("'24x' must end with one of 's', 'm' or 'h'",
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
82 toString(parseCachePruningPolicy("prune_interval=24x").takeError()));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
83 EXPECT_EQ("'foo' must be a percentage",
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
84 toString(parseCachePruningPolicy("cache_size=foo").takeError()));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
85 EXPECT_EQ("'foo' not an integer",
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
86 toString(parseCachePruningPolicy("cache_size=foo%").takeError()));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
87 EXPECT_EQ("'101' must be between 0 and 100",
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
88 toString(parseCachePruningPolicy("cache_size=101%").takeError()));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
89 EXPECT_EQ(
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
90 "'foo' not an integer",
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
91 toString(parseCachePruningPolicy("cache_size_bytes=foo").takeError()));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
92 EXPECT_EQ(
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
93 "'foo' not an integer",
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
94 toString(parseCachePruningPolicy("cache_size_bytes=foom").takeError()));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
95 EXPECT_EQ("Unknown key: 'foo'",
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
96 toString(parseCachePruningPolicy("foo=bar").takeError()));
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
97 }