From c932e88519bd724cf76da71b0b6914b3b1963530 Mon Sep 17 00:00:00 2001 From: konn Date: Wed, 30 Apr 2008 13:33:02 +0000 Subject: [PATCH] * Added test code of the chxj_atoi() function. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/branches/RELEASE_0_12_0@2580 1a406e8e-add9-4483-a2c8-d8cac5b7c224 --- src/chxj_str_util.c | 29 ++- test/chxj_str_util/test_chxj_str_util.c | 300 ++++++++++++++++++++++++++++++++ 2 files changed, 324 insertions(+), 5 deletions(-) diff --git a/src/chxj_str_util.c b/src/chxj_str_util.c index 23262963..e571e51b 100644 --- a/src/chxj_str_util.c +++ b/src/chxj_str_util.c @@ -44,14 +44,19 @@ chxj_chk_numeric(const char *s) int chxj_atoi(const char *s) { - int len = strlen(s); + int len; int ii; int result; int mflag = 0; + int break_flag = 0; + + if (! s) return 0; result = 0; - for (ii=0; ii < len; ii++) { + len = strlen(s); + + for (ii=0; ii < len && break_flag == 0; ii++) { result *= 10; switch(s[ii]) { case '0': result += 0; break; @@ -65,12 +70,26 @@ chxj_atoi(const char *s) case '8': result += 8; break; case '9': result += 9; break; case '-': - if (ii == 0) - mflag = 1; + result /= 10; + if (ii != 0) { + break_flag = 1; + break; + } + mflag = 1; break; - default: break; + case '+': + result /= 10; + if (ii != 0) { + break_flag = 1; + break; + } + break; + default: + break_flag = 1; + result /= 10; + break; } } diff --git a/test/chxj_str_util/test_chxj_str_util.c b/test/chxj_str_util/test_chxj_str_util.c index 7e610318..9913e064 100644 --- a/test/chxj_str_util/test_chxj_str_util.c +++ b/test/chxj_str_util/test_chxj_str_util.c @@ -13,6 +13,9 @@ #include +/*===========================================================================*/ +/* chxj_chk_numeric() */ +/*===========================================================================*/ void test_chxj_chk_numeric_001(); void test_chxj_chk_numeric_002(); void test_chxj_chk_numeric_003(); @@ -29,6 +32,28 @@ void test_chxj_chk_numeric_013(); void test_chxj_chk_numeric_014(); void test_chxj_chk_numeric_015(); void test_chxj_chk_numeric_016(); +/*===========================================================================*/ +/* chxj_atoi() */ +/*===========================================================================*/ +void test_chxj_atoi_001(); +void test_chxj_atoi_002(); +void test_chxj_atoi_003(); +void test_chxj_atoi_004(); +void test_chxj_atoi_005(); +void test_chxj_atoi_006(); +void test_chxj_atoi_007(); +void test_chxj_atoi_008(); +void test_chxj_atoi_009(); +void test_chxj_atoi_010(); +void test_chxj_atoi_011(); +void test_chxj_atoi_012(); +void test_chxj_atoi_013(); +void test_chxj_atoi_014(); +void test_chxj_atoi_015(); +void test_chxj_atoi_016(); +void test_chxj_atoi_017(); +void test_chxj_atoi_018(); +void test_chxj_atoi_019(); /* pend */ int @@ -37,6 +62,9 @@ main() CU_pSuite str_util_suite; CU_initialize_registry(); str_util_suite = CU_add_suite("test chxj_convert_str_util()", NULL, NULL); + /*=========================================================================*/ + /* chxj_chk_numeric() */ + /*=========================================================================*/ CU_add_test(str_util_suite, "chxj_chk_numeric 001", test_chxj_chk_numeric_001); CU_add_test(str_util_suite, "chxj_chk_numeric 002", test_chxj_chk_numeric_002); CU_add_test(str_util_suite, "chxj_chk_numeric 003", test_chxj_chk_numeric_003); @@ -53,6 +81,28 @@ main() CU_add_test(str_util_suite, "chxj_chk_numeric 014", test_chxj_chk_numeric_014); CU_add_test(str_util_suite, "chxj_chk_numeric 015", test_chxj_chk_numeric_015); CU_add_test(str_util_suite, "chxj_chk_numeric 016", test_chxj_chk_numeric_016); + /*=========================================================================*/ + /* chxj_atoi() */ + /*=========================================================================*/ + CU_add_test(str_util_suite, "chxj_atoi 001", test_chxj_atoi_001); + CU_add_test(str_util_suite, "chxj_atoi 002", test_chxj_atoi_002); + CU_add_test(str_util_suite, "chxj_atoi 003", test_chxj_atoi_003); + CU_add_test(str_util_suite, "chxj_atoi 004", test_chxj_atoi_004); + CU_add_test(str_util_suite, "chxj_atoi 005", test_chxj_atoi_005); + CU_add_test(str_util_suite, "chxj_atoi 006", test_chxj_atoi_006); + CU_add_test(str_util_suite, "chxj_atoi 007", test_chxj_atoi_007); + CU_add_test(str_util_suite, "chxj_atoi 008", test_chxj_atoi_008); + CU_add_test(str_util_suite, "chxj_atoi 009", test_chxj_atoi_009); + CU_add_test(str_util_suite, "chxj_atoi 010", test_chxj_atoi_010); + CU_add_test(str_util_suite, "chxj_atoi 011", test_chxj_atoi_011); + CU_add_test(str_util_suite, "chxj_atoi 012", test_chxj_atoi_012); + CU_add_test(str_util_suite, "chxj_atoi 013", test_chxj_atoi_013); + CU_add_test(str_util_suite, "chxj_atoi 014", test_chxj_atoi_014); + CU_add_test(str_util_suite, "chxj_atoi 015", test_chxj_atoi_015); + CU_add_test(str_util_suite, "chxj_atoi 016", test_chxj_atoi_016); + CU_add_test(str_util_suite, "chxj_atoi 017", test_chxj_atoi_017); + CU_add_test(str_util_suite, "chxj_atoi 018", test_chxj_atoi_018); + CU_add_test(str_util_suite, "chxj_atoi 019", test_chxj_atoi_019); /* aend */ CU_basic_run_tests(); @@ -303,6 +353,256 @@ void test_chxj_chk_numeric_016() APR_TERM; #undef TEST_STRING } +/*===========================================================================*/ +/* chxj_atoi() */ +/*===========================================================================*/ +void test_chxj_atoi_001() +{ +#define TEST_STRING "" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_002() +{ +#define TEST_STRING NULL + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_003() +{ +#define TEST_STRING " " + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_004() +{ +#define TEST_STRING " " + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_005() +{ +#define TEST_STRING "abc123" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_006() +{ +#define TEST_STRING "123abc" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 123); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_007() +{ +#define TEST_STRING "1" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 1); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_008() +{ +#define TEST_STRING "12" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 12); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_009() +{ +#define TEST_STRING "-" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_010() +{ +#define TEST_STRING "+" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_011() +{ +#define TEST_STRING "--" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_012() +{ +#define TEST_STRING "++" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_013() +{ +#define TEST_STRING "+-" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_014() +{ +#define TEST_STRING "-+" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 0); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_015() +{ +#define TEST_STRING "-1" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == -1); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_016() +{ +#define TEST_STRING "-1-" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == -1); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_017() +{ +#define TEST_STRING "+1" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 1); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_018() +{ +#define TEST_STRING "+1+" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 1); + + APR_TERM; +#undef TEST_STRING +} +void test_chxj_atoi_019() +{ +#define TEST_STRING "+1-" + int ret; + APR_INIT; + + ret = chxj_atoi(TEST_STRING); + + CU_ASSERT(ret == 1); + + APR_TERM; +#undef TEST_STRING +} /* * vim:ts=2 et */ -- 2.11.0