]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crush: unittest CrushWrapper::get_immediate_parent 909/head
authorLoic Dachary <loic@dachary.org>
Fri, 6 Dec 2013 18:33:49 +0000 (19:33 +0100)
committerLoic Dachary <loic@dachary.org>
Fri, 6 Dec 2013 19:40:48 +0000 (20:40 +0100)
Signed-off-by: Loic Dachary <loic@dachary.org>
src/test/crush/TestCrushWrapper.cc

index 25394e2e91e141558a0266c9bbbad85d1e3be8ca..663b002c4f79ffc8a84534fa267b6383778ac5f2 100644 (file)
 
 #include "crush/CrushWrapper.h"
 
+TEST(CrushWrapper, get_immediate_parent) {
+  CrushWrapper *c = new CrushWrapper;
+  
+  const int ROOT_TYPE = 1;
+  c->set_type_name(ROOT_TYPE, "root");
+  const int OSD_TYPE = 0;
+  c->set_type_name(OSD_TYPE, "osd");
+
+  int rootno;
+  c->add_bucket(0, CRUSH_BUCKET_STRAW, CRUSH_HASH_RJENKINS1,
+               ROOT_TYPE, 0, NULL, NULL, &rootno);
+  c->set_item_name(rootno, "default");
+
+  int item = 0;
+
+  pair <string,string> loc;
+  int ret;
+  loc = c->get_immediate_parent(item, &ret);
+  EXPECT_EQ(-ENOENT, ret);
+
+  {
+    map<string,string> loc;
+    loc["root"] = "default";
+
+    EXPECT_EQ(0, c->insert_item(g_ceph_context, item, 1.0,
+                               "osd.0", loc));
+  }
+
+  loc = c->get_immediate_parent(item, &ret);
+  EXPECT_EQ(0, ret);
+  EXPECT_EQ("root", loc.first);
+  EXPECT_EQ("default", loc.second);
+}
 TEST(CrushWrapper, check_item_loc) {
   CrushWrapper *c = new CrushWrapper;
   int item = 0;