|
@@ -1,4 +1,6 @@
|
|
|
#include <cmocka.h>
|
|
#include <cmocka.h>
|
|
|
|
|
+#include <stdlib.h>
|
|
|
|
|
+#include <time.h>
|
|
|
|
|
|
|
|
#include "scufcont/DArray.h"
|
|
#include "scufcont/DArray.h"
|
|
|
#include "scufcont/scufcont.h"
|
|
#include "scufcont/scufcont.h"
|
|
@@ -6,7 +8,7 @@
|
|
|
SCDARRAY_HEADER(int, int)
|
|
SCDARRAY_HEADER(int, int)
|
|
|
SCDARRAY_IMPL(int, int)
|
|
SCDARRAY_IMPL(int, int)
|
|
|
|
|
|
|
|
-void test_DArray_alloc(void** state) {
|
|
|
|
|
|
|
+void test_DArray_alloc(void **state) {
|
|
|
(void) state;
|
|
(void) state;
|
|
|
|
|
|
|
|
SCDArray_int arr;
|
|
SCDArray_int arr;
|
|
@@ -18,39 +20,64 @@ void test_DArray_alloc(void** state) {
|
|
|
SCDArray_int_free(&arr);
|
|
SCDArray_int_free(&arr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void test_DArray_push_back(void** state) {
|
|
|
|
|
|
|
+void test_DArray_alloc_copy(void **state) {
|
|
|
|
|
+ (void) state;
|
|
|
|
|
+
|
|
|
|
|
+ srand(time(NULL));
|
|
|
|
|
+
|
|
|
|
|
+ SCDArray_int arr;
|
|
|
|
|
+ assert_true(SCDArray_int_alloc(&arr) == SCUFCONT_SUCCESS);
|
|
|
|
|
+
|
|
|
|
|
+ const size_t elems_n = rand() % 100;
|
|
|
|
|
+ for (size_t i = 0; i < elems_n; i++) {
|
|
|
|
|
+ const int elem = rand();
|
|
|
|
|
+ assert_true(SCDArray_int_push_back(&arr, &elem) == SCUFCONT_SUCCESS);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ SCDArray_int copied;
|
|
|
|
|
+ assert_true(SCDArray_int_alloc_copy(&copied, &arr) == SCUFCONT_SUCCESS);
|
|
|
|
|
+ assert_non_null(copied.data);
|
|
|
|
|
+ assert_uint_equal(copied.capacity, arr.capacity);
|
|
|
|
|
+ assert_uint_equal(copied.len, arr.len);
|
|
|
|
|
+ assert_memory_equal(copied.data, arr.data, copied.len);
|
|
|
|
|
+
|
|
|
|
|
+ SCDArray_int_free(&arr);
|
|
|
|
|
+ SCDArray_int_free(&copied);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void test_DArray_push_back(void **state) {
|
|
|
(void) state;
|
|
(void) state;
|
|
|
|
|
|
|
|
SCDArray_int arr;
|
|
SCDArray_int arr;
|
|
|
SCDArray_int_alloc(&arr);
|
|
SCDArray_int_alloc(&arr);
|
|
|
|
|
|
|
|
- assert_true(SCDArray_int_push_back(&arr, &(int){7}) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_int_push_back(&arr, &(int) { 7 }) == SCUFCONT_SUCCESS);
|
|
|
assert_true(arr.data[0] == 7);
|
|
assert_true(arr.data[0] == 7);
|
|
|
|
|
|
|
|
- assert_true(SCDArray_int_push_back(&arr, &(int){10}) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_int_push_back(&arr, &(int) { 10 }) == SCUFCONT_SUCCESS);
|
|
|
assert_true(arr.data[0] == 7);
|
|
assert_true(arr.data[0] == 7);
|
|
|
assert_true(arr.data[1] == 10);
|
|
assert_true(arr.data[1] == 10);
|
|
|
|
|
|
|
|
SCDArray_int_free(&arr);
|
|
SCDArray_int_free(&arr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void test_DArray_at(void** state) {
|
|
|
|
|
|
|
+void test_DArray_at(void **state) {
|
|
|
(void) state;
|
|
(void) state;
|
|
|
|
|
|
|
|
SCDArray_int arr;
|
|
SCDArray_int arr;
|
|
|
SCDArray_int_alloc(&arr);
|
|
SCDArray_int_alloc(&arr);
|
|
|
|
|
|
|
|
- assert_true(SCDArray_int_push_back(&arr, &(int){7}) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_int_push_back(&arr, &(int) { 7 }) == SCUFCONT_SUCCESS);
|
|
|
assert_int_equal(*SCDArray_int_at(&arr, 0), 7);
|
|
assert_int_equal(*SCDArray_int_at(&arr, 0), 7);
|
|
|
|
|
|
|
|
- assert_true(SCDArray_int_push_back(&arr, &(int){10}) == SCUFCONT_SUCCESS);
|
|
|
|
|
|
|
+ assert_true(SCDArray_int_push_back(&arr, &(int) { 10 }) == SCUFCONT_SUCCESS);
|
|
|
assert_int_equal(*SCDArray_int_at(&arr, 0), 7);
|
|
assert_int_equal(*SCDArray_int_at(&arr, 0), 7);
|
|
|
assert_int_equal(*SCDArray_int_at(&arr, 1), 10);
|
|
assert_int_equal(*SCDArray_int_at(&arr, 1), 10);
|
|
|
|
|
|
|
|
SCDArray_int_free(&arr);
|
|
SCDArray_int_free(&arr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void test_DArray_push_back_multiple(void** state) {
|
|
|
|
|
|
|
+void test_DArray_push_back_multiple(void **state) {
|
|
|
(void) state;
|
|
(void) state;
|
|
|
|
|
|
|
|
SCDArray_int arr;
|
|
SCDArray_int arr;
|
|
@@ -75,7 +102,7 @@ void test_DArray_push_back_multiple(void** state) {
|
|
|
SCDArray_int_free(&arr);
|
|
SCDArray_int_free(&arr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void test_DArray_remove(void** state) {
|
|
|
|
|
|
|
+void test_DArray_remove(void **state) {
|
|
|
(void) state;
|
|
(void) state;
|
|
|
|
|
|
|
|
SCDArray_int arr;
|
|
SCDArray_int arr;
|
|
@@ -126,7 +153,7 @@ void test_DArray_remove(void** state) {
|
|
|
SCDArray_int_free(&arr);
|
|
SCDArray_int_free(&arr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void test_DArray_clear(void** state) {
|
|
|
|
|
|
|
+void test_DArray_clear(void **state) {
|
|
|
(void) state;
|
|
(void) state;
|
|
|
|
|
|
|
|
SCDArray_int arr;
|
|
SCDArray_int arr;
|
|
@@ -149,6 +176,7 @@ void test_DArray_clear(void** state) {
|
|
|
int DArray_tests_run(void) {
|
|
int DArray_tests_run(void) {
|
|
|
const struct CMUnitTest tests[] = {
|
|
const struct CMUnitTest tests[] = {
|
|
|
cmocka_unit_test(test_DArray_alloc),
|
|
cmocka_unit_test(test_DArray_alloc),
|
|
|
|
|
+ cmocka_unit_test(test_DArray_alloc_copy),
|
|
|
cmocka_unit_test(test_DArray_push_back),
|
|
cmocka_unit_test(test_DArray_push_back),
|
|
|
cmocka_unit_test(test_DArray_at),
|
|
cmocka_unit_test(test_DArray_at),
|
|
|
cmocka_unit_test(test_DArray_push_back_multiple),
|
|
cmocka_unit_test(test_DArray_push_back_multiple),
|