|
@@ -18,11 +18,16 @@ void darray_charp_destroyer(char **elem) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void darray_charp_copyer(char **dst, char **src) {
|
|
|
|
|
|
|
+int darray_charp_copyer(char **dst, char **src) {
|
|
|
if (dst != NULL && src != NULL && *src != NULL) {
|
|
if (dst != NULL && src != NULL && *src != NULL) {
|
|
|
*dst = (char *) malloc(sizeof(char) * (strlen(*src) + 1));
|
|
*dst = (char *) malloc(sizeof(char) * (strlen(*src) + 1));
|
|
|
|
|
+ if (dst == NULL) {
|
|
|
|
|
+ return SCUFCONT_OUT_OF_MEMORY;
|
|
|
|
|
+ }
|
|
|
strncpy(*dst, *src, strlen(*src) + 1);
|
|
strncpy(*dst, *src, strlen(*src) + 1);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void test_DArray_alloc(void **state) {
|
|
void test_DArray_alloc(void **state) {
|
|
@@ -51,11 +56,11 @@ void test_DArray_alloc_copy(void **state) {
|
|
|
char buf[100];
|
|
char buf[100];
|
|
|
snprintf(buf, 100, "%d", n);
|
|
snprintf(buf, 100, "%d", n);
|
|
|
char *bufptr = buf;
|
|
char *bufptr = buf;
|
|
|
- assert_true(SCDArray_charp_push_back(&arr, &bufptr) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_charp_push_back(&arr, &bufptr, NULL) == SCUFCONT_SUCCESS);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
SCDArray_charp copied;
|
|
SCDArray_charp copied;
|
|
|
- assert_true(SCDArray_charp_alloc_copy(&copied, &arr) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_charp_alloc_copy(&copied, &arr, NULL) == SCUFCONT_SUCCESS);
|
|
|
assert_non_null(copied.data);
|
|
assert_non_null(copied.data);
|
|
|
assert_uint_equal(copied.capacity, arr.capacity);
|
|
assert_uint_equal(copied.capacity, arr.capacity);
|
|
|
assert_uint_equal(copied.len, arr.len);
|
|
assert_uint_equal(copied.len, arr.len);
|
|
@@ -108,10 +113,10 @@ void test_DArray_push_back(void **state) {
|
|
|
|
|
|
|
|
char *str2 = "World";
|
|
char *str2 = "World";
|
|
|
|
|
|
|
|
- assert_true(SCDArray_charp_push_back(&arr, &(char *) { str1 }) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_charp_push_back(&arr, &(char *) { str1 }, NULL) == SCUFCONT_SUCCESS);
|
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 0), str1);
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 0), str1);
|
|
|
|
|
|
|
|
- assert_true(SCDArray_charp_push_back(&arr, &(char *) { str2 }) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_charp_push_back(&arr, &(char *) { str2 }, NULL) == SCUFCONT_SUCCESS);
|
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 0), str1);
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 0), str1);
|
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 1), str2);
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 1), str2);
|
|
|
|
|
|
|
@@ -128,10 +133,10 @@ void test_DArray_at(void **state) {
|
|
|
SCDArray_charp arr;
|
|
SCDArray_charp arr;
|
|
|
SCDARRAY_CHARP_ALLOC(&arr);
|
|
SCDARRAY_CHARP_ALLOC(&arr);
|
|
|
|
|
|
|
|
- assert_true(SCDArray_charp_push_back(&arr, &(char *) { "Hello" }) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_charp_push_back(&arr, &(char *) { "Hello" }, NULL) == SCUFCONT_SUCCESS);
|
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 0), "Hello");
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 0), "Hello");
|
|
|
|
|
|
|
|
- assert_true(SCDArray_charp_push_back(&arr, &(char *) { "World" }) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_charp_push_back(&arr, &(char *) { "World" }, NULL) == SCUFCONT_SUCCESS);
|
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 0), "Hello");
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 0), "Hello");
|
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 1), "World");
|
|
assert_string_equal(*SCDArray_charp_at(&arr, 1), "World");
|
|
|
|
|
|
|
@@ -146,7 +151,7 @@ void test_DArray_push_back_multiple(void **state) {
|
|
|
|
|
|
|
|
char *nums[] = { "1", "2", "3", "4", "5" };
|
|
char *nums[] = { "1", "2", "3", "4", "5" };
|
|
|
const size_t nums_len = sizeof(nums) / sizeof(nums[0]);
|
|
const size_t nums_len = sizeof(nums) / sizeof(nums[0]);
|
|
|
- assert_true(SCDArray_charp_push_back_multiple(&arr, nums, nums_len) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_charp_push_back_multiple(&arr, nums, nums_len, NULL) == SCUFCONT_SUCCESS);
|
|
|
for (size_t i = 0; i < arr.len; i++) {
|
|
for (size_t i = 0; i < arr.len; i++) {
|
|
|
assert_string_equal(*SCDArray_charp_at(&arr, i), nums[i]);
|
|
assert_string_equal(*SCDArray_charp_at(&arr, i), nums[i]);
|
|
|
}
|
|
}
|
|
@@ -155,7 +160,7 @@ void test_DArray_push_back_multiple(void **state) {
|
|
|
nums2[0] = "6";
|
|
nums2[0] = "6";
|
|
|
nums2[1] = "7";
|
|
nums2[1] = "7";
|
|
|
nums2[2] = "8";
|
|
nums2[2] = "8";
|
|
|
- assert_true(SCDArray_charp_push_back_multiple(&arr, nums2, nums2_len) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_charp_push_back_multiple(&arr, nums2, nums2_len, NULL) == SCUFCONT_SUCCESS);
|
|
|
for (size_t i = 0; i < nums_len; i++) {
|
|
for (size_t i = 0; i < nums_len; i++) {
|
|
|
assert_string_equal(*SCDArray_charp_at(&arr, i), nums[i]);
|
|
assert_string_equal(*SCDArray_charp_at(&arr, i), nums[i]);
|
|
|
}
|
|
}
|
|
@@ -191,7 +196,7 @@ void test_DArray_remove(void **state) {
|
|
|
nums[4] = (char *) malloc(2);
|
|
nums[4] = (char *) malloc(2);
|
|
|
strncpy(nums[4], "5", 2);
|
|
strncpy(nums[4], "5", 2);
|
|
|
const size_t nums_len = 5;
|
|
const size_t nums_len = 5;
|
|
|
- SCDArray_charp_push_back_multiple(&arr, nums, nums_len);
|
|
|
|
|
|
|
+ SCDArray_charp_push_back_multiple(&arr, nums, nums_len, NULL);
|
|
|
for (size_t i = 0; i < arr.len; i++) {
|
|
for (size_t i = 0; i < arr.len; i++) {
|
|
|
assert_string_equal(*SCDArray_charp_at(&arr, i), nums[i]);
|
|
assert_string_equal(*SCDArray_charp_at(&arr, i), nums[i]);
|
|
|
}
|
|
}
|
|
@@ -256,7 +261,7 @@ void test_DArray_clear(void **state) {
|
|
|
const size_t words_len = sizeof(words) / sizeof(words[0]);
|
|
const size_t words_len = sizeof(words) / sizeof(words[0]);
|
|
|
|
|
|
|
|
for (size_t i = 0; i < words_len; i++) {
|
|
for (size_t i = 0; i < words_len; i++) {
|
|
|
- SCDArray_charp_push_back(&arr, words + i);
|
|
|
|
|
|
|
+ SCDArray_charp_push_back(&arr, words + i, NULL);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
assert_uint_equal(arr.len, words_len);
|
|
assert_uint_equal(arr.len, words_len);
|