summaryrefslogtreecommitdiff
path: root/tests/term_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/term_test.c')
-rw-r--r--tests/term_test.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/term_test.c b/tests/term_test.c
index b904148..7b531b1 100644
--- a/tests/term_test.c
+++ b/tests/term_test.c
@@ -1881,8 +1881,30 @@ static void test_concurrent_feed_and_snapshot(void)
term_free(t);
}
+static void test_reserved_options_must_be_zero(void)
+{
+ struct term_options opt = { .size = { .x = 10, .y = 2 } };
+ struct term *t = term_new(&opt);
+ assert(t != NULL);
+ term_free(t);
+
+ size_t words = sizeof(opt.reserved) / sizeof(opt.reserved[0]);
+ for (size_t i = 0; i < words; i++) {
+ opt.reserved[i] = 1;
+ assert(term_new(&opt) == NULL);
+ opt.reserved[i] = 0;
+ }
+ opt.reserved[words - 1] = 0x80000000u;
+ assert(term_new(&opt) == NULL);
+ opt.reserved[words - 1] = 0;
+ t = term_new(&opt);
+ assert(t != NULL);
+ term_free(t);
+}
+
int main(void)
{
+ test_reserved_options_must_be_zero();
test_concurrent_feed_and_snapshot();
test_grow_past_reservation();
test_skipped_cells_read_blank();