|
|
#include "../../unity/unity.h" |
|
|
#include <string.h> |
|
|
#include <stddef.h> |
|
|
|
|
|
|
|
|
void setUp(void) { |
|
|
|
|
|
} |
|
|
void tearDown(void) { |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void configure_default_delims(void) |
|
|
{ |
|
|
|
|
|
static char h[] = "\\:h"; |
|
|
static char b[] = "\\:b"; |
|
|
static char f[] = "\\:f"; |
|
|
|
|
|
|
|
|
|
|
|
section_del = DEFAULT_SECTION_DELIMITERS; |
|
|
|
|
|
header_del = h; |
|
|
header_del_len = strlen(h); |
|
|
|
|
|
body_del = b; |
|
|
body_del_len = strlen(b); |
|
|
|
|
|
footer_del = f; |
|
|
footer_del_len = strlen(f); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void set_line_buf_str(const char *s) |
|
|
{ |
|
|
line_buf.buffer = (char *) s; |
|
|
line_buf.length = strlen(s); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void test_check_section_returns_Text_when_line_too_short(void) |
|
|
{ |
|
|
configure_default_delims(); |
|
|
|
|
|
const char *line = "A\n"; |
|
|
set_line_buf_str(line); |
|
|
|
|
|
enum section sec = check_section(); |
|
|
TEST_ASSERT_EQUAL_INT(Text, sec); |
|
|
} |
|
|
|
|
|
static void test_check_section_returns_Text_when_prefix_mismatch(void) |
|
|
{ |
|
|
configure_default_delims(); |
|
|
|
|
|
const char *line = "xyh\n"; |
|
|
set_line_buf_str(line); |
|
|
|
|
|
enum section sec = check_section(); |
|
|
TEST_ASSERT_EQUAL_INT(Text, sec); |
|
|
} |
|
|
|
|
|
static void test_check_section_detects_Header(void) |
|
|
{ |
|
|
configure_default_delims(); |
|
|
|
|
|
const char *line = "\\:h\n"; |
|
|
set_line_buf_str(line); |
|
|
|
|
|
enum section sec = check_section(); |
|
|
TEST_ASSERT_EQUAL_INT(Header, sec); |
|
|
} |
|
|
|
|
|
static void test_check_section_detects_Body(void) |
|
|
{ |
|
|
configure_default_delims(); |
|
|
|
|
|
const char *line = "\\:b\n"; |
|
|
set_line_buf_str(line); |
|
|
|
|
|
enum section sec = check_section(); |
|
|
TEST_ASSERT_EQUAL_INT(Body, sec); |
|
|
} |
|
|
|
|
|
static void test_check_section_detects_Footer(void) |
|
|
{ |
|
|
configure_default_delims(); |
|
|
|
|
|
const char *line = "\\:f\n"; |
|
|
set_line_buf_str(line); |
|
|
|
|
|
enum section sec = check_section(); |
|
|
TEST_ASSERT_EQUAL_INT(Footer, sec); |
|
|
} |
|
|
|
|
|
static void test_check_section_only_prefix_without_type_is_Text(void) |
|
|
{ |
|
|
configure_default_delims(); |
|
|
|
|
|
|
|
|
const char *line = "\\:\n"; |
|
|
set_line_buf_str(line); |
|
|
|
|
|
enum section sec = check_section(); |
|
|
TEST_ASSERT_EQUAL_INT(Text, sec); |
|
|
} |
|
|
|
|
|
static void test_check_section_disabled_by_empty_delimiter_returns_Text(void) |
|
|
{ |
|
|
configure_default_delims(); |
|
|
|
|
|
footer_del_len = 0; |
|
|
|
|
|
|
|
|
const char *line = "\\:h\n"; |
|
|
set_line_buf_str(line); |
|
|
|
|
|
enum section sec = check_section(); |
|
|
TEST_ASSERT_EQUAL_INT(Text, sec); |
|
|
} |
|
|
|
|
|
|
|
|
int main(void) |
|
|
{ |
|
|
UNITY_BEGIN(); |
|
|
|
|
|
RUN_TEST(test_check_section_returns_Text_when_line_too_short); |
|
|
RUN_TEST(test_check_section_returns_Text_when_prefix_mismatch); |
|
|
RUN_TEST(test_check_section_detects_Header); |
|
|
RUN_TEST(test_check_section_detects_Body); |
|
|
RUN_TEST(test_check_section_detects_Footer); |
|
|
RUN_TEST(test_check_section_only_prefix_without_type_is_Text); |
|
|
RUN_TEST(test_check_section_disabled_by_empty_delimiter_returns_Text); |
|
|
|
|
|
return UNITY_END(); |
|
|
} |