/* data が改行のみのとき、空文字列が返ること。改行がCRLF。 */ static void test_sgetline_emptylines_crlf(void) { const char *data = "\r\n\r\n\r\n"; char* line; /* 1行め */ line = sgetline(&data); PCU_ASSERT_PTR_NOT_NULL(line); PCU_ASSERT_STRING_EQUAL("", line); free(line); /* 2行め */ line = sgetline(&data); PCU_ASSERT_PTR_NOT_NULL(line); PCU_ASSERT_STRING_EQUAL("", line); free(line); /* 3行め */ line = sgetline(&data); PCU_ASSERT_PTR_NOT_NULL(line); PCU_ASSERT_STRING_EQUAL("", line); free(line); line = sgetline(&data); PCU_ASSERT_PTR_NULL(line); }
/* data が複数行のとき、各行を取得できること。改行がCR。 */ static void test_sgetline_multilines_cr(void) { const char *data = "abc\rdef\rghi"; char* line; line = sgetline(&data); PCU_ASSERT_PTR_NOT_NULL(line); PCU_ASSERT_STRING_EQUAL("abc", line); free(line); line = sgetline(&data); PCU_ASSERT_PTR_NOT_NULL(line); PCU_ASSERT_STRING_EQUAL("def", line); free(line); line = sgetline(&data); PCU_ASSERT_PTR_NOT_NULL(line); PCU_ASSERT_STRING_EQUAL("ghi", line); free(line); PCU_ASSERT_EQUAL('\0', *data); }
static void test_snclone(void) { char* clone = snclone("abc", 2); PCU_ASSERT_PTR_NOT_NULL(clone); PCU_ASSERT_STRING_EQUAL("ab", clone); free(clone); }
static void test_snclone_empty(void) { char* clone = snclone("", 0); PCU_ASSERT_PTR_NOT_NULL(clone); PCU_ASSERT_STRING_EQUAL("", clone); free(clone); }
static void test_f_const_char_ptr(void) { f_const_char_ptr_Expectation e[1] = {{0}}; e[0].expected.a = "hoge"; e[0].retval = "foo"; f_const_char_ptr_expect(e, sizeof e / sizeof e[0]); PCU_ASSERT_STRING_EQUAL("foo", f_const_char_ptr("hoge")); }
static void test_ini_get_ignore_comment_line_crlf(void) { Ini *ini; const char *value1, *value2; ini = ini_parse(" ;comment1\r\n[section]\r\n\t;comment2\r\nname1=value1\r\n;comment3\r\nname2=value2\r\n;comment4"); value1 = ini_get(ini, "section", "name1"); PCU_ASSERT_PTR_NOT_NULL(value1); PCU_ASSERT_STRING_EQUAL("value1", value1); value2 = ini_get(ini, "section", "name2"); PCU_ASSERT_PTR_NOT_NULL(value2); PCU_ASSERT_STRING_EQUAL("value2", value2); ini_delete(ini); }
static void test_ini_get_ignore_spacetab_line_cr(void) { Ini *ini; const char *value1, *value2; ini = ini_parse(" \t\r[section]\r \t\rname1=value1\r \t\rname2=value2 \t\r"); value1 = ini_get(ini, "section", "name1"); PCU_ASSERT_PTR_NOT_NULL(value1); PCU_ASSERT_STRING_EQUAL("value1", value1); value2 = ini_get(ini, "section", "name2"); PCU_ASSERT_PTR_NOT_NULL(value2); PCU_ASSERT_STRING_EQUAL("value2", value2); ini_delete(ini); }
static void test_ini_get_ignore_empty_line(void) { Ini *ini; const char *value1, *value2; ini = ini_parse("\n[section]\n\nname1=value1\n\nname2=value2"); value1 = ini_get(ini, "section", "name1"); PCU_ASSERT_PTR_NOT_NULL(value1); PCU_ASSERT_STRING_EQUAL("value1", value1); value2 = ini_get(ini, "section", "name2"); PCU_ASSERT_PTR_NOT_NULL(value2); PCU_ASSERT_STRING_EQUAL("value2", value2); ini_delete(ini); }
static void test_ini_get_two_keys_crlf(void) { Ini *ini; const char *value1, *value2; ini = ini_parse("[section]\r\nname1=value1\r\nname2=value2"); PCU_ASSERT_PTR_NOT_NULL(ini); value1 = ini_get(ini, "section", "name1"); PCU_ASSERT_PTR_NOT_NULL(value1); PCU_ASSERT_STRING_EQUAL("value1", value1); value2 = ini_get(ini, "section", "name2"); PCU_ASSERT_PTR_NOT_NULL(value2); PCU_ASSERT_STRING_EQUAL("value2", value2); ini_delete(ini); }
static void test_ini_get_two_sections(void) { Ini *ini; const char *value1, *value2, *value3; ini = ini_parse("[section1]\nname1=value1\n[section2]\nname2=value2\nname3=value3"); value1 = ini_get(ini, "section1", "name1"); PCU_ASSERT_PTR_NOT_NULL(value1); PCU_ASSERT_STRING_EQUAL("value1", value1); value2 = ini_get(ini, "section2", "name2"); PCU_ASSERT_PTR_NOT_NULL(value2); PCU_ASSERT_STRING_EQUAL("value2", value2); value3 = ini_get(ini, "section2", "name3"); PCU_ASSERT_PTR_NOT_NULL(value3); PCU_ASSERT_STRING_EQUAL("value3", value3); ini_delete(ini); }
/* data が1行のとき、1行を取得し、'\0' が返ること */ static void test_sgetline_oneline(void) { const char *data = "abc"; char* line; line = sgetline(&data); PCU_ASSERT_PTR_NOT_NULL(line); PCU_ASSERT_STRING_EQUAL("abc", line); free(line); PCU_ASSERT_EQUAL('\0', *data); }
static void test_ini_get(void) { Ini *ini; const char *value; ini = ini_parse("[section]\nname=value"); PCU_ASSERT_PTR_NOT_NULL(ini); value = ini_get(ini, "section", "name"); PCU_ASSERT_PTR_NOT_NULL(value); PCU_ASSERT_STRING_EQUAL("value", value); ini_delete(ini); }
static void test_ini_get_unknown_line_after_first_section_crlf(void) { Ini *ini; const char *value1, *value2; ini = ini_parse("[section]\r\nname1=value1\r\nabc\r\nname2=value2"); value1 = ini_get(ini, "section", "name1"); PCU_ASSERT_PTR_NOT_NULL(value1); PCU_ASSERT_STRING_EQUAL("value1", value1); value2 = ini_get(ini, "section", "name2"); PCU_ASSERT_PTR_NULL(value2); ini_delete(ini); }