Skip to content

Commit 924d1da

Browse files
committed
test(FAM): add more list
1 parent 9aaba96 commit 924d1da

File tree

1 file changed

+36
-13
lines changed

1 file changed

+36
-13
lines changed

tests/io/test_fam_list.cc

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ void populateList() {
6464
FamList lst(tester.lastRegion(), list_name);
6565
for (auto i = 0; i < list_size; i++) {
6666
auto buffer = makeTestData(i);
67-
EXPECT_NO_THROW(lst.pushBack(buffer.data(), buffer.size()));
67+
lst.pushBack(buffer.data(), buffer.size());
6868
}
6969
}
7070

@@ -77,21 +77,44 @@ CASE("FamList: create an empty list and validate size, empty, front, back") {
7777
constexpr const eckit::fam::size_t region_size = 1024;
7878

7979
auto list_region = tester.makeRandomRegion(region_size);
80-
const auto lst = FamList(list_region, list_name);
80+
const auto list = FamList(list_region, list_name);
8181

82-
EXPECT(lst.empty());
82+
// empty list should have size 0
83+
EXPECT(list.empty());
84+
EXPECT(list.size() == 0);
85+
86+
// front/back should throw as it's undefined behavior
87+
EXPECT_THROWS({ auto front = list.front(); });
88+
EXPECT_THROWS({ auto back = list.back(); });
89+
}
90+
91+
CASE("FamList: populate a list and validate size, !empty, front, back") {
92+
93+
constexpr const eckit::fam::size_t region_size = 1024;
94+
95+
auto region = FamRegionName(fam::test_endpoint, "")
96+
.withRegion(TestFam::makeRandomText("LIST_REGION"))
97+
.create(region_size, 0640, true);
98+
auto list = FamList(region, list_name);
99+
100+
// empty list should have size 0
101+
EXPECT(list.empty());
102+
EXPECT_EQUAL(list.size(), 0);
103+
104+
std::string front = "Front FAM List!";
105+
EXPECT_NO_THROW(list.pushBack(front));
106+
EXPECT_EQUAL(list.size(), 1);
107+
EXPECT_EQUAL(list.front().view(), front);
108+
EXPECT_EQUAL(list.back().view(), front);
83109

84-
EXPECT(lst.size() == 0);
85110

86-
Buffer front;
87-
EXPECT_NO_THROW(front = lst.front());
88-
EXPECT(front.size() == 0);
89-
EXPECT(front.data() == nullptr);
111+
std::string back = "Back FAM List!";
112+
EXPECT_NO_THROW(list.pushBack(back));
113+
EXPECT_EQUAL(list.size(), 2);
114+
EXPECT_EQUAL(list.front().view(), front);
115+
EXPECT_EQUAL(list.back().view(), back);
90116

91-
Buffer back;
92-
EXPECT_NO_THROW(back = lst.back());
93-
EXPECT(back.size() == 0);
94-
EXPECT(back.data() == nullptr);
117+
region.destroy();
95118
}
96119

97120
//----------------------------------------------------------------------------------------------------------------------
@@ -102,7 +125,7 @@ CASE("FamList: populate with " + std::to_string(list_size) + " items by " + std:
102125
threads.reserve(num_threads);
103126

104127
for (auto i = 0; i < num_threads; i++) {
105-
threads.emplace_back(populateList);
128+
EXPECT_NO_THROW(threads.emplace_back(populateList));
106129
}
107130

108131
for (auto&& thread : threads) {

0 commit comments

Comments
 (0)