Browse Source

unit tests for peek_buf_startswith()

Nick Mathewson 6 years ago
parent
commit
6595f55020
1 changed files with 27 additions and 0 deletions
  1. 27 0
      src/test/test_buffers.c

+ 27 - 0
src/test/test_buffers.c

@@ -838,10 +838,37 @@ test_buffers_find_contentlen(void *arg)
   ;
 }
 
+static void
+test_buffer_peek_startswith(void *arg)
+{
+  (void)arg;
+  buf_t *buf;
+  buf = buf_new();
+  tt_ptr_op(buf, OP_NE, NULL);
+
+  tt_assert(peek_buf_startswith(buf, ""));
+  tt_assert(! peek_buf_startswith(buf, "X"));
+
+  write_to_buf("Tor", 3, buf);
+
+  tt_assert(peek_buf_startswith(buf, ""));
+  tt_assert(peek_buf_startswith(buf, "T"));
+  tt_assert(peek_buf_startswith(buf, "To"));
+  tt_assert(peek_buf_startswith(buf, "Tor"));
+  tt_assert(! peek_buf_startswith(buf, "Top"));
+  tt_assert(! peek_buf_startswith(buf, "For"));
+  tt_assert(! peek_buf_startswith(buf, "Tork"));
+  tt_assert(! peek_buf_startswith(buf, "Torpor"));
+
+ done:
+  buf_free(buf);
+}
+
 struct testcase_t buffer_tests[] = {
   { "basic", test_buffers_basic, TT_FORK, NULL, NULL },
   { "copy", test_buffer_copy, TT_FORK, NULL, NULL },
   { "pullup", test_buffer_pullup, TT_FORK, NULL, NULL },
+  { "startswith", test_buffer_peek_startswith, 0, NULL, NULL },
   { "ext_or_cmd", test_buffer_ext_or_cmd, TT_FORK, NULL, NULL },
   { "allocation_tracking", test_buffer_allocation_tracking, TT_FORK,
     NULL, NULL },