You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.6 KiB
111 lines
2.6 KiB
#include <check.h> |
|
#include "../src/easycsv.h" |
|
|
|
static const char SAMPLE1_PATH[] = "samples/1.csv"; |
|
static const char SAMPLE2_PATH[] = "samples/2.csv"; |
|
|
|
START_TEST(test_easycsv_init_read) |
|
{ |
|
easycsv *csv = NULL; |
|
csv = easycsv_init(SAMPLE1_PATH, EASYCSV_R); |
|
ck_assert_ptr_nonnull(csv); |
|
easycsv_free(csv); |
|
csv = easycsv_init(SAMPLE2_PATH, EASYCSV_R); |
|
ck_assert_ptr_nonnull(csv); |
|
easycsv_free(csv); |
|
} |
|
|
|
START_TEST(test_easycsv_init_write) |
|
{ |
|
easycsv *csv = NULL; |
|
csv = easycsv_init(SAMPLE1_PATH, EASYCSV_W); |
|
ck_assert_ptr_nonnull(csv); |
|
easycsv_free(csv); |
|
csv = easycsv_init(SAMPLE2_PATH, EASYCSV_W); |
|
ck_assert_ptr_nonnull(csv); |
|
easycsv_free(csv); |
|
} |
|
|
|
START_TEST(test_easycsv_printcolumns) |
|
{ |
|
easycsv *csv = easycsv_init(SAMPLE1_PATH, EASYCSV_R); |
|
ck_assert_int_eq(easycsv_printcolumns(csv), 3); |
|
easycsv_free(csv); |
|
} |
|
|
|
START_TEST(test_easycsv_printrows) |
|
{ |
|
easycsv *csv = easycsv_init(SAMPLE1_PATH, EASYCSV_R); |
|
ck_assert_int_eq(easycsv_printrows(csv), 5); |
|
easycsv_free(csv); |
|
} |
|
|
|
START_TEST(test_easycsv_readcolumnvalue) |
|
{ |
|
easycsv *csv = easycsv_init(SAMPLE1_PATH, EASYCSV_R); |
|
ck_assert_str_eq(easycsv_readcolumnvalue(csv, "TEST1", 1), "FILEPATHA1"); |
|
ck_assert_str_eq(easycsv_readcolumnvalue(csv, "TEST1", 2), "FILEPATHB1"); |
|
ck_assert_str_eq(easycsv_readcolumnvalue(csv, "TEST1", 3), NULL); |
|
ck_assert_str_eq(easycsv_readcolumnvalue(csv, "TEST2", 1), "FILEPATHA2"); |
|
easycsv_free(csv); |
|
} |
|
|
|
Suite* |
|
easycsv_constructor_suite(void) |
|
{ |
|
Suite *s; |
|
TCase *tc_init; |
|
|
|
s = suite_create ("constructor"); |
|
tc_init = tcase_create ("basic constructor"); |
|
|
|
tcase_add_test(tc_init, test_easycsv_init_read); |
|
tcase_add_test(tc_init, test_easycsv_init_write); |
|
suite_add_tcase(s, tc_init); |
|
|
|
return s; |
|
} |
|
|
|
Suite* |
|
easycsv_print_suite(void) |
|
{ |
|
Suite *s; |
|
TCase *tc_col, *tc_row; |
|
s = suite_create ("print"); |
|
tc_col = tcase_create ("columns"); |
|
tc_row = tcase_create ("rows"); |
|
tcase_add_test(tc_col, test_easycsv_printcolumns); |
|
tcase_add_test(tc_row, test_easycsv_printrows); |
|
suite_add_tcase(s, tc_col); |
|
suite_add_tcase(s, tc_row); |
|
|
|
return s; |
|
} |
|
|
|
Suite* |
|
easycsv_read_suite(void) |
|
{ |
|
Suite *s; |
|
TCase *tc_readcolumnvalue; |
|
s = suite_create ("read"); |
|
tc_readcolumnvalue = tcase_create ("readcolumnvalue"); |
|
tcase_add_test(tc_readcolumnvalue, test_easycsv_readcolumnvalue); |
|
|
|
return s; |
|
} |
|
|
|
int |
|
main(void) |
|
{ |
|
int number_failed; |
|
SRunner *sr; |
|
|
|
sr = srunner_create(easycsv_constructor_suite()); |
|
srunner_add_suite(sr, easycsv_print_suite()); |
|
srunner_add_suite(sr, easycsv_read_suite()); |
|
|
|
srunner_run_all(sr, CK_VERBOSE); |
|
number_failed = srunner_ntests_failed(sr); |
|
srunner_free(sr); |
|
return number_failed; |
|
}
|
|
|