]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/test/crush/CrushWrapper.cc
update sources to 12.2.7
[ceph.git] / ceph / src / test / crush / CrushWrapper.cc
index 4502d0d0e69b379984f75437651bbeb8fbf0555d..d1e45aced1a8e1ca29c15195523aa57f64607479 100644 (file)
@@ -1024,7 +1024,7 @@ TEST(CrushWrapper, choose_args_compat) {
   crush_choose_arg choose_args[maxbuckets];
   memset(choose_args, '\0', sizeof(crush_choose_arg) * maxbuckets);
   choose_args[-1-id].ids_size = 0;
-  choose_args[-1-id].weight_set_size = 1;
+  choose_args[-1-id].weight_set_positions = 1;
   choose_args[-1-id].weight_set = &weight_set;
   crush_choose_arg_map arg_map;
   arg_map.size = c.get_max_buckets();
@@ -1042,7 +1042,7 @@ TEST(CrushWrapper, choose_args_compat) {
     CrushWrapper c_new;
     c_new.decode(i);
     ASSERT_EQ(1u, c_new.choose_args.size());
-    ASSERT_EQ(1u, c_new.choose_args[caid].args[-1-id].weight_set_size);
+    ASSERT_EQ(1u, c_new.choose_args[caid].args[-1-id].weight_set_positions);
     ASSERT_EQ(weights, c_new.choose_args[caid].args[-1-id].weight_set[0].weights[0]);
     ASSERT_EQ(weight, c_new.get_bucket_item_weightf(id, 0));
   }
@@ -1061,7 +1061,7 @@ TEST(CrushWrapper, choose_args_compat) {
   }
 }
 
-TEST(CrushWrapper, remove_unused_root) {
+TEST(CrushWrapper, remove_root) {
   CrushWrapper c;
   c.create();
   c.set_type_name(1, "host");
@@ -1087,9 +1087,9 @@ TEST(CrushWrapper, remove_unused_root) {
   ASSERT_TRUE(c.name_exists("default"));
   ASSERT_TRUE(c.name_exists("r11"));
   ASSERT_TRUE(c.name_exists("r12"));
-  ASSERT_EQ(c.remove_root(c.get_item_id("default"), true), 0);
+  ASSERT_EQ(c.remove_root(c.get_item_id("default")), 0);
   ASSERT_FALSE(c.name_exists("default"));
-  ASSERT_TRUE(c.name_exists("r11"));
+  ASSERT_FALSE(c.name_exists("r11"));
   ASSERT_FALSE(c.name_exists("r12"));
 }
 
@@ -1111,18 +1111,15 @@ TEST(CrushWrapper, trim_roots_with_class) {
   int root_id = c.get_item_id("default");
   int clone_id;
   map<int32_t, map<int32_t, int32_t>> old_class_bucket;
+  map<int,map<int,vector<int>>> cmap_item_weight; // cargs -> bno -> weights
   set<int32_t> used_ids;
 
   ASSERT_EQ(c.device_class_clone(root_id, cl, old_class_bucket, used_ids,
-                                &clone_id), 0);
+                                &clone_id, &cmap_item_weight), 0);
 
   ASSERT_TRUE(c.name_exists("default"));
   ASSERT_TRUE(c.name_exists("default~ssd"));
-  c.trim_roots_with_class(true); // do nothing because still in use
-  ASSERT_TRUE(c.name_exists("default"));
-  ASSERT_TRUE(c.name_exists("default~ssd"));
-  c.class_bucket.clear();
-  c.trim_roots_with_class(true); // do nothing because still in use
+  c.trim_roots_with_class();
   ASSERT_TRUE(c.name_exists("default"));
   ASSERT_FALSE(c.name_exists("default~ssd"));
 }
@@ -1149,11 +1146,12 @@ TEST(CrushWrapper, device_class_clone) {
   c.reweight(g_ceph_context);
 
   map<int32_t, map<int32_t, int32_t>> old_class_bucket;
+  map<int,map<int,vector<int>>> cmap_item_weight; // cargs -> bno -> weights
   set<int32_t> used_ids;
   int root_id = c.get_item_id("default");
   int clone_id;
   ASSERT_EQ(c.device_class_clone(root_id, cl, old_class_bucket, used_ids,
-                                &clone_id), 0);
+                                &clone_id, &cmap_item_weight), 0);
   ASSERT_TRUE(c.name_exists("default~ssd"));
   ASSERT_EQ(clone_id, c.get_item_id("default~ssd"));
   ASSERT_TRUE(c.subtree_contains(clone_id, item));
@@ -1164,13 +1162,13 @@ TEST(CrushWrapper, device_class_clone) {
   // cloning again does nothing and returns the existing one
   int other_clone_id;
   ASSERT_EQ(c.device_class_clone(root_id, cl, old_class_bucket, used_ids,
-                                &other_clone_id), 0);
+                                &other_clone_id, &cmap_item_weight), 0);
   ASSERT_EQ(clone_id, other_clone_id);
   // invalid arguments
   ASSERT_EQ(c.device_class_clone(12345, cl, old_class_bucket, used_ids,
-                                &other_clone_id), -ECHILD);
+                                &other_clone_id, &cmap_item_weight), -ECHILD);
   ASSERT_EQ(c.device_class_clone(root_id, 12345, old_class_bucket, used_ids,
-                                &other_clone_id), -EBADF);
+                                &other_clone_id, &cmap_item_weight), -EBADF);
 }
 
 TEST(CrushWrapper, split_id_class) {
@@ -1188,11 +1186,12 @@ TEST(CrushWrapper, split_id_class) {
   c.class_map[item] = class_id;
 
   map<int32_t, map<int32_t, int32_t>> old_class_bucket;
+  map<int,map<int,vector<int>>> cmap_item_weight; // cargs -> bno -> weights
   set<int32_t> used_ids;
   int item_id = c.get_item_id("default");
   int clone_id;
   ASSERT_EQ(c.device_class_clone(item_id, class_id, old_class_bucket, used_ids,
-                                &clone_id), 0);
+                                &clone_id, &cmap_item_weight), 0);
   int retrieved_item_id;
   int retrieved_class_id;
   ASSERT_EQ(c.split_id_class(clone_id, &retrieved_item_id, &retrieved_class_id), 0);