aboutsummaryrefslogtreecommitdiff
path: root/memstack/test/memstack_test.c
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-07-19 09:43:50 -0700
committer3gg <3gg@shellblade.net>2025-07-19 09:43:50 -0700
commitb905c803f35ee41ed894a108cc8fa114a2a58b88 (patch)
treef67bb65087208fa85b30011a07e8e23bd8e7ef9a /memstack/test/memstack_test.c
parent75705ca3d91930a730743b5319268087fc7bc56e (diff)
Add functions to get and set the watermarkHEADmain
Diffstat (limited to 'memstack/test/memstack_test.c')
-rw-r--r--memstack/test/memstack_test.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/memstack/test/memstack_test.c b/memstack/test/memstack_test.c
index 285cf46..5308be3 100644
--- a/memstack/test/memstack_test.c
+++ b/memstack/test/memstack_test.c
@@ -131,4 +131,35 @@ TEST_CASE(memstack_alloc_aligned) {
131 memstack_del(&stack); 131 memstack_del(&stack);
132} 132}
133 133
134// Get and set the watermark.
135TEST_CASE(memstack_watermark) {
136 memstack stack = {0};
137 memstack_make(&stack, CAPACITY, nullptr);
138
139 // Allocate N/2 ints.
140 for (int i = 0; i < NUM_INTS / 2; ++i) {
141 const int* block = memstack_alloc(&stack, sizeof(int));
142 TEST_TRUE(block != nullptr);
143 }
144
145 const size_t watermark = memstack_watermark(&stack);
146
147 // Allocate the remaining N/2 ints.
148 for (int i = 0; i < NUM_INTS / 2; ++i) {
149 const int* block = memstack_alloc(&stack, sizeof(int));
150 TEST_TRUE(block != nullptr);
151 }
152
153 // Now reset the watermark halfway through.
154 memstack_set_watermark(&stack, watermark);
155
156 // Allocate the remaining N/2 ints (again).
157 for (int i = 0; i < NUM_INTS / 2; ++i) {
158 const int* block = memstack_alloc(&stack, sizeof(int));
159 TEST_TRUE(block != nullptr);
160 }
161
162 memstack_del(&stack);
163}
164
134int main() { return 0; } 165int main() { return 0; }