summaryrefslogtreecommitdiff
path: root/source/test/unittests/input_buffer.test.c
diff options
context:
space:
mode:
authorMitya Selivanov <0x7fffff@guattari.ru>2022-08-09 21:18:21 +0400
committerMitya Selivanov <0x7fffff@guattari.ru>2022-08-09 21:18:21 +0400
commit3c82a1f8fa015b74c8e0b426c21189acb95368fa (patch)
tree5cc6c70b5f51393b57da652869fbcef333eaa6b0 /source/test/unittests/input_buffer.test.c
parent65a298e7415e6785d30681cf0cb9aae0e4965fbe (diff)
downloadkit-3c82a1f8fa015b74c8e0b426c21189acb95368fa.zip
Add tests
Diffstat (limited to 'source/test/unittests/input_buffer.test.c')
-rw-r--r--source/test/unittests/input_buffer.test.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/source/test/unittests/input_buffer.test.c b/source/test/unittests/input_buffer.test.c
index a88b58b..175537c 100644
--- a/source/test/unittests/input_buffer.test.c
+++ b/source/test/unittests/input_buffer.test.c
@@ -3,7 +3,7 @@
#define KIT_TEST_FILE input_buffer
#include "../../kit_test/test.h"
-TEST("input buffer") {
+TEST("input buffer read once") {
str_t text = { .size = 3, .values = "foo" };
is_handle_t in = IS_WRAP_STRING(text);
ib_handle_t first = IB_WRAP(in);
@@ -18,3 +18,40 @@ TEST("input buffer") {
ib_destroy(first);
is_destroy(in);
}
+
+TEST("input buffer read again") {
+ str_t text = { .size = 6, .values = "foobar" };
+ str_t foo = { .size = 3, .values = "foo" };
+ is_handle_t in = IS_WRAP_STRING(text);
+ ib_handle_t first = IB_WRAP(in);
+
+ ib_handle_t second = ib_read(first, 3);
+ ib_handle_t third = ib_read(first, 3);
+
+ REQUIRE(AR_EQUAL(foo, second.data));
+ REQUIRE(AR_EQUAL(foo, third.data));
+
+ ib_destroy(third);
+ ib_destroy(second);
+ ib_destroy(first);
+ is_destroy(in);
+}
+
+TEST("input buffer read twice") {
+ str_t text = { .size = 6, .values = "foobar" };
+ str_t foo = { .size = 3, .values = "foo" };
+ str_t bar = { .size = 3, .values = "bar" };
+ is_handle_t in = IS_WRAP_STRING(text);
+ ib_handle_t first = IB_WRAP(in);
+
+ ib_handle_t second = ib_read(first, 3);
+ ib_handle_t third = ib_read(second, 3);
+
+ REQUIRE(AR_EQUAL(foo, second.data));
+ REQUIRE(AR_EQUAL(bar, third.data));
+
+ ib_destroy(third);
+ ib_destroy(second);
+ ib_destroy(first);
+ is_destroy(in);
+}