Added tests for dstr.
This commit is contained in:
parent
c7a9c8215c
commit
ffcf2fb013
79
test/test_dstr.c
Normal file
79
test/test_dstr.c
Normal file
@ -0,0 +1,79 @@
|
||||
#include "../src/include/dstr.h"
|
||||
#include "Unity/src/unity.h"
|
||||
#include <string.h>
|
||||
|
||||
void setUp() {};
|
||||
void tearDown() {};
|
||||
|
||||
void test_dstr_init() {
|
||||
Dstr* dstr = dstr_init();
|
||||
TEST_ASSERT_EQUAL(0, strlen(dstr->buf));
|
||||
TEST_ASSERT_EQUAL(0, dstr->ln);
|
||||
TEST_ASSERT_EQUAL(DSTR_INITSZ, dstr->bufsz);
|
||||
}
|
||||
|
||||
void test_dstr_append() {
|
||||
Dstr* dstr;
|
||||
|
||||
// Test simple appending.
|
||||
dstr = dstr_init();
|
||||
char* hello_world = "Hello, world!";
|
||||
dstr_append(dstr, hello_world, strlen(hello_world));
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING(hello_world, dstr->buf);
|
||||
TEST_ASSERT_EQUAL(strlen(hello_world), dstr->ln);
|
||||
TEST_ASSERT_EQUAL(DSTR_INITSZ, dstr->bufsz);
|
||||
|
||||
dstr_destroy(dstr);
|
||||
|
||||
// Test buffer doubling.
|
||||
dstr = dstr_init();
|
||||
|
||||
char h[DSTR_INITSZ + 20];
|
||||
memset(h, 'h', DSTR_INITSZ + 19);
|
||||
h[DSTR_INITSZ + 19] = '\0';
|
||||
dstr_append(dstr, h, strlen(h));
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING(h, dstr->buf);
|
||||
TEST_ASSERT_EQUAL(strlen(h), dstr->ln);
|
||||
TEST_ASSERT_EQUAL(DSTR_INITSZ * 2, dstr->bufsz);
|
||||
}
|
||||
|
||||
void test_dstr_appendch() {
|
||||
Dstr* dstr;
|
||||
|
||||
// Test simple character appending.
|
||||
dstr = dstr_init();
|
||||
char c = 'c';
|
||||
char* c_str = "c";
|
||||
dstr_appendch(dstr, c);
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING(c_str, dstr->buf);
|
||||
TEST_ASSERT_EQUAL(strlen(c_str), dstr->ln);
|
||||
TEST_ASSERT_EQUAL(DSTR_INITSZ, dstr->bufsz);
|
||||
|
||||
dstr_destroy(dstr);
|
||||
|
||||
// Test buffer doubling.
|
||||
dstr = dstr_init();
|
||||
|
||||
// Test against this string.
|
||||
char h[DSTR_INITSZ + 20];
|
||||
memset(h, 'h', DSTR_INITSZ + 19);
|
||||
h[DSTR_INITSZ + 19] = '\0';
|
||||
|
||||
for (int i = 0; i < DSTR_INITSZ + 19; i++) dstr_appendch(dstr, 'h');
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING(h, dstr->buf);
|
||||
TEST_ASSERT_EQUAL(strlen(h), dstr->ln);
|
||||
TEST_ASSERT_EQUAL(DSTR_INITSZ * 2, dstr->bufsz);
|
||||
}
|
||||
|
||||
// not needed when using generate_test_runner.rb
|
||||
int main(void) {
|
||||
UNITY_BEGIN();
|
||||
RUN_TEST(test_dstr_init);
|
||||
RUN_TEST(test_dstr_append);
|
||||
RUN_TEST(test_dstr_appendch);
|
||||
return UNITY_END();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user