Пример #1
0
/* 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);
}
Пример #2
0
/* 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);
}
Пример #3
0
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);
}
Пример #4
0
static void test_snclone(void)
{
	char* clone = snclone("abc", 2);
	PCU_ASSERT_PTR_NOT_NULL(clone);
	PCU_ASSERT_STRING_EQUAL("ab", clone);
	free(clone);
}
Пример #5
0
static void test_snclone_empty(void)
{
	char* clone = snclone("", 0);
	PCU_ASSERT_PTR_NOT_NULL(clone);
	PCU_ASSERT_STRING_EQUAL("", clone);
	free(clone);
}
Пример #6
0
static int *f_int_ptr_callback(int *a)
{
	const int ret_a[] = {1, 10, 100, 1000};
	PCU_ASSERT_PTR_NOT_NULL(a);
	*a = ret_a[f_int_ptr_num_calls()];
	return 0;
}
Пример #7
0
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);
}
Пример #8
0
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);
}
Пример #9
0
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);
}
Пример #10
0
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);
}
Пример #11
0
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);
}
Пример #12
0
/* 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);

}
Пример #13
0
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);
}