]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
unittest_ceph_argparse: test float parsing
authorSage Weil <sage@redhat.com>
Sun, 31 May 2015 16:42:52 +0000 (12:42 -0400)
committerSage Weil <sage@redhat.com>
Sun, 31 May 2015 16:43:01 +0000 (12:43 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/test/ceph_argparse.cc

index f48f387f9ffb6d872f04e03e86ff27e0d05ba7c9..f846db7291890bfba7063c67d5c99c755d635e63 100644 (file)
@@ -280,6 +280,30 @@ TEST(CephArgParse, WithDashesAndUnderscores) {
   ASSERT_EQ(found_baz, "");
 }
 
+TEST(CephArgParse, WithFloat) {
+  const char *BAZSTUFF1[] = { "./myprog", "--foo", "50.5", "--bar", "52", NULL };
+
+  VectorContainer bazstuff1(BAZSTUFF1);
+  ostringstream err;
+  float foo;
+  int bar = -1;
+  for (std::vector<const char*>::iterator i = bazstuff1.arr.begin();
+       i != bazstuff1.arr.end(); )
+  {
+    if (ceph_argparse_double_dash(bazstuff1.arr, i)) {
+      break;
+    } else if (ceph_argparse_witharg(bazstuff1.arr, i, &foo, err, "--foo", (char*)NULL)) {
+      ASSERT_EQ(string(""), err.str());
+    } else if (ceph_argparse_witharg(bazstuff1.arr, i, &bar, err, "--bar", (char*)NULL)) {
+      ASSERT_EQ(string(""), err.str());
+    }
+    else {
+      ++i;
+    }
+  }
+  ASSERT_EQ(foo, 50.5);
+  ASSERT_EQ(bar, 52);
+}
 
 TEST(CephArgParse, WithInt) {
   const char *BAZSTUFF1[] = { "./myprog", "--foo", "50", "--bar", "52", NULL };