*/
decode_set.insert(decode_for_parity_shards);
need_set.insert(decode_for_parity_shards);
- extent_set decode_for_parity = get_extent_superset();
+ extent_set decode_for_parity;
+
+ for (auto shard : encode_set) {
+ decode_for_parity.insert(want.at(shard));
+ }
for (auto shard : decode_for_parity_shards) {
extent_set parity_pad;
test_decode(k, m, chunk_size, object_size, want, acting_set);
}
+
+TEST(ECCommon, decode8) {
+ const unsigned int k = 3;
+ const unsigned int m = 2;
+ const uint64_t chunk_size = 64 * 1024;
+ const uint64_t object_size = 672 * 1024;
+
+
+ ECUtil::shard_extent_set_t want(k+m);
+ shard_id_set acting_set;
+ want[shard_id_t(0)].insert(64 * 1024, 64 * 1024);
+ want[shard_id_t(2)].insert(32 * 1024, 32 * 1024);
+ want[shard_id_t(3)].insert(32 * 1024, 64 * 1024);
+ want[shard_id_t(4)].insert(32 * 1024, 64 * 1024);
+
+
+ acting_set.insert(shard_id_t(0));
+ acting_set.insert_range(shard_id_t(2), 2);
+
+ test_decode(k, m, chunk_size, object_size, want, acting_set);
+}