MCPcopy Create free account
hub / github.com/ElementsProject/elements / TEST

Function TEST

src/leveldb/db/filename_test.cc:16–73  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14class FileNameTest {};
15
16TEST(FileNameTest, Parse) {
17 Slice db;
18 FileType type;
19 uint64_t number;
20
21 // Successful parses
22 static struct {
23 const char* fname;
24 uint64_t number;
25 FileType type;
26 } cases[] = {
27 {"100.log", 100, kLogFile},
28 {"0.log", 0, kLogFile},
29 {"0.sst", 0, kTableFile},
30 {"0.ldb", 0, kTableFile},
31 {"CURRENT", 0, kCurrentFile},
32 {"LOCK", 0, kDBLockFile},
33 {"MANIFEST-2", 2, kDescriptorFile},
34 {"MANIFEST-7", 7, kDescriptorFile},
35 {"LOG", 0, kInfoLogFile},
36 {"LOG.old", 0, kInfoLogFile},
37 {"18446744073709551615.log", 18446744073709551615ull, kLogFile},
38 };
39 for (int i = 0; i < sizeof(cases) / sizeof(cases[0]); i++) {
40 std::string f = cases[i].fname;
41 ASSERT_TRUE(ParseFileName(f, &number, &type)) << f;
42 ASSERT_EQ(cases[i].type, type) << f;
43 ASSERT_EQ(cases[i].number, number) << f;
44 }
45
46 // Errors
47 static const char* errors[] = {"",
48 "foo",
49 "foo-dx-100.log",
50 ".log",
51 "",
52 "manifest",
53 "CURREN",
54 "CURRENTX",
55 "MANIFES",
56 "MANIFEST",
57 "MANIFEST-",
58 "XMANIFEST-3",
59 "MANIFEST-3x",
60 "LOC",
61 "LOCKx",
62 "LO",
63 "LOGx",
64 "18446744073709551616.log",
65 "184467440737095516150.log",
66 "100",
67 "100.",
68 "100.lop"};
69 for (int i = 0; i < sizeof(errors) / sizeof(errors[0]); i++) {
70 std::string f = errors[i];
71 ASSERT_TRUE(!ParseFileName(f, &number, &type)) << f;
72 }
73}

Callers

nothing calls this directly

Calls 10

ParseFileNameFunction · 0.85
CurrentFileNameFunction · 0.85
LockFileNameFunction · 0.85
LogFileNameFunction · 0.85
TableFileNameFunction · 0.85
DescriptorFileNameFunction · 0.85
TempFileNameFunction · 0.85
InfoLogFileNameFunction · 0.85
OldInfoLogFileNameFunction · 0.85
dataMethod · 0.45

Tested by

no test coverage detected