diff options
Diffstat (limited to 'memstack/test')
-rw-r--r-- | memstack/test/memstack_test.c | 31 |
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. | ||
135 | TEST_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 | |||
134 | int main() { return 0; } | 165 | int main() { return 0; } |