]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
confutils: test unicode parsing
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Fri, 1 Apr 2011 23:09:27 +0000 (16:09 -0700)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Mon, 4 Apr 2011 21:00:20 +0000 (14:00 -0700)
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/test/confutils.cc

index 73e359ed1cbf984a48e467ae4418f341e8d553a9..d7e356881a8f182cf5cc46e916b8bba2c816eae4 100644 (file)
@@ -196,6 +196,14 @@ const char illegal_conf3[] = "\
         keyring = osd_keyring          ; osd's keyring\n\
 ";
 
+// unicode config file
+const char unicode_config_1[] = "\
+[global]\n\
+        log file =           \x66\xd1\x86\xd1\x9d\xd3\xad\xd3\xae     \n\
+        pid file =           foo-bar\n\
+[osd0]\n\
+";
+
 TEST(ParseFiles1, ConfUtils) {
   std::string simple_conf_1_f(next_tempfile(simple_conf_1));
   ConfFile cf1(simple_conf_1_f.c_str());
@@ -254,6 +262,12 @@ TEST(ReadFiles2, ConfUtils) {
   ASSERT_EQ(val, "/quite/a/long/path/for/a/log/file");
   ASSERT_EQ(cf1.read("global", "pid file", val), 0);
   ASSERT_EQ(val, "spork");
+
+  std::string unicode_config_1f(next_tempfile(unicode_config_1));
+  ConfFile cf2(unicode_config_1f.c_str());
+  ASSERT_EQ(cf2.parse(), 0);
+  ASSERT_EQ(cf2.read("global", "log file", val), 0);
+  ASSERT_EQ(val, "\x66\xd1\x86\xd1\x9d\xd3\xad\xd3\xae");
 }
 
 // FIXME: illegal configuration files don't return a parse error currently.