summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/array.c7
-rw-r--r--tests/array_typed.c5
-rw-r--r--tests/str.c52
3 files changed, 46 insertions, 18 deletions
diff --git a/tests/array.c b/tests/array.c
index 1e70074..08d29eb 100644
--- a/tests/array.c
+++ b/tests/array.c
@@ -34,11 +34,16 @@ static bool array_test_reserve(void)
al_array_reserve(arr, 64);
AL_TEST_NEQ((void *)arr.data, NULL, ptr);
- AL_TEST_EQ(arr.alloc, 128, u32);
+ AL_TEST_EQ(arr.alloc, 64, u32);
al_array_reserve(arr, 128);
AL_TEST_NEQ((void *)arr.data, NULL, ptr);
+ AL_TEST_EQ(arr.alloc, 128, u32);
+
+ al_array_reserve(arr, 129);
+
+ AL_TEST_NEQ((void *)arr.data, NULL, ptr);
AL_TEST_EQ(arr.alloc, 256, u32);
al_array_free(arr);
diff --git a/tests/array_typed.c b/tests/array_typed.c
index 1c401d4..edaa52b 100644
--- a/tests/array_typed.c
+++ b/tests/array_typed.c
@@ -43,6 +43,11 @@ static bool array_test_reserve(void)
al_array_reserve(u32, 64)(&arr, 128);
AL_TEST_NEQ((void *)arr.data, NULL, ptr);
+ AL_TEST_EQ(arr.alloc, 128, u32);
+
+ al_array_reserve(u32, 64)(&arr, 129);
+
+ AL_TEST_NEQ((void *)arr.data, NULL, ptr);
AL_TEST_EQ(arr.alloc, 256, u32);
al_array_free(u32, 64)(&arr);
diff --git a/tests/str.c b/tests/str.c
index 00d0c98..72ed81f 100644
--- a/tests/str.c
+++ b/tests/str.c
@@ -122,29 +122,47 @@ static bool str_test_get_line(void)
{
AL_TEST_START("str_get_line");
- str *lines = al_str_c("test\nasdf\ntest2\na\n");
- str *lines_array[] = { al_str_c("test"), al_str_c("asdf"), al_str_c("test2"), al_str_c("a") };
+ str *lines0 = al_str_c("test\nasdf\ntest2\na\n ");
+ str *lines_array0[] = { al_str_c("test"), al_str_c("asdf"), al_str_c("test2"), al_str_c("a"), al_str_c(" ") };
- str line;
- al_memset(&line, 0, sizeof(str));
- u32 c = 0;
+ str *lines1 = al_str_c("test\nasdf\ntest2\na\n");
+ str *lines_array1[] = { al_str_c("test"), al_str_c("asdf"), al_str_c("test2"), al_str_c("a") };
- for (; al_str_get_line(lines, '\n', &line); ) {
- AL_TEST_LT(c, (u32)ARRAY_SIZE(lines_array), u32);
- AL_TEST_TRUE(al_str_eq(&line, lines_array[c++]));
- }
+ str *lines;
+ str **lines_array;
+ u32 lines_array_size;
+
+ for (u32 i = 0; i < 2; i++) {
+ if (i == 0) {
+ lines = lines0;
+ lines_array = lines_array0;
+ lines_array_size = (u32)ARRAY_SIZE(lines_array0);
+ } else if (i == 1) {
+ lines = lines1;
+ lines_array = lines_array1;
+ lines_array_size = (u32)ARRAY_SIZE(lines_array1);
+ }
+
+ str line = al_str_zero();
+ u32 c = 0;
+
+ for (; al_str_get_line(lines, '\n', &line); ) {
+ AL_TEST_LT(c, lines_array_size, u32);
+ AL_TEST_TRUE(al_str_eq(&line, lines_array[c++]));
+ }
- AL_TEST_EQ(c, (u32)ARRAY_SIZE(lines_array), u32);
+ AL_TEST_EQ(c, lines_array_size, u32);
- lines = al_str_c("");
+ lines = al_str_c("");
- al_memset(&line, 0, sizeof(str));
- c = 0;
+ al_memset(&line, 0, sizeof(str));
+ c = 0;
- for (; al_str_get_line(lines, '\n', &line); ) {
- AL_TEST_LT(c, 1, u32);
- AL_TEST_EQ(line.len, 0, u32);
- c++;
+ for (; al_str_get_line(lines, '\n', &line); ) {
+ AL_TEST_LT(c, 1, u32);
+ AL_TEST_EQ(line.len, 0, u32);
+ c++;
+ }
}
AL_TEST_END();