summaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/stash
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2020-10-23 13:18:04 +0000
committerHåvard Pettersen <havardpe@oath.com>2020-10-26 12:26:31 +0000
commita3a5da626502b625b1b13eff983fa58f44a5389d (patch)
tree6caf903e5520f054d9e0b9d445ce6a7329c4464f /vespalib/src/tests/stash
parent6e23dcf00c5307a157881be88548363d21c58b38 (diff)
add function to allocate an uninitialized array
Diffstat (limited to 'vespalib/src/tests/stash')
-rw-r--r--vespalib/src/tests/stash/stash.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/vespalib/src/tests/stash/stash.cpp b/vespalib/src/tests/stash/stash.cpp
index deb4f862dbe..cea359a1bab 100644
--- a/vespalib/src/tests/stash/stash.cpp
+++ b/vespalib/src/tests/stash/stash.cpp
@@ -449,4 +449,25 @@ TEST("require that mark/revert works as expected") {
EXPECT_EQUAL(stash.count_used(), 0u);
}
+void check_array(ArrayRef<float> arr, size_t expect_size) {
+ EXPECT_EQUAL(arr.size(), expect_size);
+ for (size_t i = 0; i < arr.size(); ++i) {
+ arr[i] = float(i);
+ }
+ for (size_t i = 0; i < arr.size(); ++i) {
+ EXPECT_EQUAL(arr[i], float(i));
+ }
+}
+
+TEST("require that uninitialized arrays can be created") {
+ Stash stash(4096);
+ EXPECT_EQUAL(0u, stash.count_used());
+ ArrayRef<float> small_arr = stash.create_uninitialized_array<float>(64);
+ TEST_DO(check_array(small_arr, 64));
+ EXPECT_EQUAL(sum({chunk_header_size(), sizeof(float) * 64}), stash.count_used());
+ ArrayRef<float> big_arr = stash.create_uninitialized_array<float>(2500);
+ TEST_DO(check_array(big_arr, 2500));
+ EXPECT_EQUAL(sum({chunk_header_size(), sizeof(float) * 64}), stash.count_used());
+}
+
TEST_MAIN() { TEST_RUN_ALL(); }