libfort/tests/main_test.c
Sean Morrison c4be1ca649 Implement ft_col_count() along with corresponding unit tests
This pairs with the existing ft_row_count() using the same column
counting method used elsewhere in the code (i.e., iterate over rows
and find the biggest).

Added unit tests for ft_row_count(), ft_col_count(), ft_is_empty(),
and use a myriad of insertion methods to increase coverage.
2020-11-29 12:38:31 -05:00

107 lines
2.9 KiB
C

#include "tests.h"
#include <stdio.h>
#include "fort.h"
/* Test cases */
void test_bug_fixes(void);
void test_vector_basic(void);
void test_vector_stress(void);
void test_string_buffer(void);
void test_table_sizes(void);
void test_table_counts(void);
void test_table_geometry(void);
void test_table_basic(void);
void test_table_copy(void);
void test_table_changing_cell(void);
void test_table_erase(void);
#ifdef FT_HAVE_WCHAR
void test_wcs_table_boundaries(void);
#endif
void test_table_write(void);
void test_table_insert_strategy(void);
void test_table_border_style(void);
void test_table_builtin_border_styles(void);
void test_table_cell_properties(void);
void test_table_text_styles(void);
void test_table_tbl_properties(void);
void test_memory_errors(void);
void test_error_codes(void);
#ifdef FT_HAVE_UTF8
void test_utf8_table(void);
#endif
#ifdef FORT_WB_TESTING_ENABLED
struct test_case wb_test_suite [] = {
{"test_vector_basic", test_vector_basic},
{"test_vector_stress", test_vector_stress},
{"test_string_buffer", test_string_buffer},
{"test_table_sizes", test_table_sizes},
{"test_table_counts", test_table_counts},
{"test_table_geometry", test_table_geometry},
{"test_table_copy", test_table_copy},
};
#endif
struct test_case bb_test_suite [] = {
{"test_bug_fixes", test_bug_fixes},
{"test_table_basic", test_table_basic},
#ifdef FT_HAVE_WCHAR
{"test_wcs_table_boundaries", test_wcs_table_boundaries},
#endif
#ifdef FT_HAVE_UTF8
{"test_utf8_table", test_utf8_table},
#endif
{"test_table_write", test_table_write},
{"test_table_insert_strategy", test_table_insert_strategy},
{"test_table_changing_cell", test_table_changing_cell},
{"test_table_erase", test_table_erase},
{"test_table_border_style", test_table_border_style},
{"test_table_builtin_border_styles", test_table_builtin_border_styles},
{"test_table_cell_properties", test_table_cell_properties},
{"test_table_tbl_properties", test_table_tbl_properties},
{"test_table_text_styles", test_table_text_styles},
{"test_memory_errors", test_memory_errors},
{"test_error_codes", test_error_codes},
};
#ifdef FORT_WB_TESTING_ENABLED
int run_wb_test_suite(void)
{
int wb_n_tests = sizeof(wb_test_suite) / sizeof(wb_test_suite[0]);
run_test_suite("WHITE BOX TEST SUITE", wb_n_tests, wb_test_suite);
return 0;
}
#endif
int run_bb_test_suite(void)
{
int bb_n_tests = sizeof(bb_test_suite) / sizeof(bb_test_suite[0]);
run_test_suite("BLACK BOX TEST SUITE", bb_n_tests, bb_test_suite);
return 0;
}
int main(void)
{
int status = 0;
/*
* Essential for OSX, because swprintf can fail in case of real unicode
* chars.
*/
#if defined(FT_HAVE_WCHAR)
setlocale(LC_CTYPE, "");
#endif
#ifdef FORT_WB_TESTING_ENABLED
status |= run_wb_test_suite();
fprintf(stderr, "\n");
#endif
status |= run_bb_test_suite();
return status;
}