aboutsummaryrefslogtreecommitdiffstats
path: root/librecrypt_concat_mem_.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--librecrypt_concat_mem_.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/librecrypt_concat_mem_.c b/librecrypt_concat_mem_.c
index edc826a..296303e 100644
--- a/librecrypt_concat_mem_.c
+++ b/librecrypt_concat_mem_.c
@@ -12,10 +12,26 @@ extern inline void librecrypt_concat_mem_(struct concat_state *state, const char
int
main(void)
{
+ char buf[5];
+ struct concat_state state = {buf, sizeof(buf), 0u};
+
SET_UP_ALARM();
INIT_RESOURCE_TEST();
- /* TODO test */
+ memset(buf, 'x', sizeof(buf));
+
+ librecrypt_concat_mem_(&state, "abcdef", 6u);
+ assert(!memcmp(buf, "abcd\0", sizeof(buf)));
+ assert(state.buf == &buf[4u]);
+ assert(state.size == 1u);
+ assert(state.len == 6u);
+ librecrypt_concat_mem_(&state, "z", 1u);
+ assert(!memcmp(buf, "abcd\0", sizeof(buf)));
+ assert(state.len == 7u);
+
+ state = (struct concat_state){NULL, 0u, 0u};
+ librecrypt_concat_mem_(&state, "abc", 3u);
+ assert(state.len == 3u);
STOP_RESOURCE_TEST();
return 0;