From 5a5ff19382bbd69010ce0702067136923c12093c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=B6llendorf?= Date: Sun, 3 Mar 2024 00:00:24 +0100 Subject: [PATCH] Test UTF-8 and dots in keys refs #67 refs #103 refs #43 --- test/ressources/gruezi.ini | 8 ++++++++ test/ressources/utf8.ini | 10 ++++++++++ test/test_iniparser.c | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 test/ressources/gruezi.ini create mode 100644 test/ressources/utf8.ini diff --git a/test/ressources/gruezi.ini b/test/ressources/gruezi.ini new file mode 100644 index 0000000..71f5422 --- /dev/null +++ b/test/ressources/gruezi.ini @@ -0,0 +1,8 @@ +# +# Das isch en Biispiel INI Datei +# + +[Chuchichäschtli] + +10.123=example +Gruss=Grüzi diff --git a/test/ressources/utf8.ini b/test/ressources/utf8.ini new file mode 100644 index 0000000..b8e09c7 --- /dev/null +++ b/test/ressources/utf8.ini @@ -0,0 +1,10 @@ +# +# これはiniファイルの例です。 +# + +[拉麺] + +叉焼 = no ; +味噌 = TRUE ; +海苔 = 0 ; +メンマ = そうだね ; diff --git a/test/test_iniparser.c b/test/test_iniparser.c index 3fec87e..dfcad8c 100644 --- a/test/test_iniparser.c +++ b/test/test_iniparser.c @@ -18,6 +18,8 @@ #define NEW_INI_PATH "ressources/new.ini" #define TEST_INI_PATH "ressources/test.ini" #define TEST_TXT_PATH "ressources/test.txt" +#define GRUEZI_INI_PATH "ressources/gruezi.ini" +#define UTF8_INI_PATH "ressources/utf8.ini" #define stringify_2(x) #x #define stringify(x) stringify_2(x) @@ -989,3 +991,36 @@ void Test_iniparser_find_entry(CuTest *tc) iniparser_freedict(dic); } + +void Test_iniparser_utf8(CuTest *tc) +{ + dictionary *dic; + + dic = iniparser_load(GRUEZI_INI_PATH); + + if (!dic) { + fprintf(stderr, "cannot parse file: %s\n", GRUEZI_INI_PATH); + return; + } + + /* Generic dictionary */ + CuAssertStrEquals(tc, "example", + iniparser_getstring(dic, "Chuchichäschtli:10.123", NULL)); + CuAssertStrEquals(tc, "Grüzi", + iniparser_getstring(dic, "Chuchichäschtli:Gruss", NULL)); + dictionary_del(dic); + dic = iniparser_load(UTF8_INI_PATH); + + if (!dic) { + fprintf(stderr, "cannot parse file: %s\n", UTF8_INI_PATH); + return; + } + + /* Generic dictionary */ + CuAssertIntEquals(tc, 0, iniparser_getboolean(dic, "拉麺:叉焼", -1)); + CuAssertIntEquals(tc, 1, iniparser_getboolean(dic, "拉麺:味噌", -1)); + CuAssertIntEquals(tc, 0, iniparser_getboolean(dic, "拉麺:海苔", -1)); + CuAssertStrEquals(tc, "そうだね", + iniparser_getstring(dic, "拉麺:メンマ", NULL)); + dictionary_del(dic); +}