From 4ece5b70d2de4a771b090eb20682e532fb59c09d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 23 Sep 2016 16:59:35 -0400 Subject: [PATCH] ceph_test_objectstore: add a test Signed-off-by: Sage Weil --- src/test/objectstore/store_test.cc | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index 54ece21aefb3..d906ecb1c043 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -3951,6 +3951,55 @@ TEST_P(StoreTest, SyntheticMatrixSharding) { do_matrix(m, store); } +TEST_P(StoreTest, ZipperPatternSharded) { + if(string(GetParam()) != "bluestore") + return; + g_conf->set_val("bluestore_min_alloc_size", "4096"); + g_ceph_context->_conf->apply_changes(NULL); + int r = store->umount(); + ASSERT_EQ(r, 0); + r = store->mount(); //to force min_alloc_size update + ASSERT_EQ(r, 0); + + ObjectStore::Sequencer osr("test"); + coll_t cid; + ghobject_t a(hobject_t(sobject_t("Object 1", CEPH_NOSNAP))); + { + ObjectStore::Transaction t; + t.create_collection(cid, 0); + cerr << "Creating collection " << cid << std::endl; + r = apply_transaction(store, &osr, std::move(t)); + ASSERT_EQ(r, 0); + } + bufferlist bl; + int len = 4096; + bufferptr bp(len); + bp.zero(); + bl.append(bp); + for (int i=0; i<1000; ++i) { + ObjectStore::Transaction t; + t.write(cid, a, i*2*len, len, bl, 0); + r = apply_transaction(store, &osr, std::move(t)); + ASSERT_EQ(r, 0); + } + for (int i=0; i<1000; ++i) { + ObjectStore::Transaction t; + t.write(cid, a, i*2*len + 1, len, bl, 0); + r = apply_transaction(store, &osr, std::move(t)); + ASSERT_EQ(r, 0); + } + { + ObjectStore::Transaction t; + t.remove(cid, a); + t.remove_collection(cid); + cerr << "Cleaning" << std::endl; + r = apply_transaction(store, &osr, std::move(t)); + ASSERT_EQ(r, 0); + } + g_conf->set_val("bluestore_min_alloc_size", "0"); + g_ceph_context->_conf->apply_changes(NULL); +} + TEST_P(StoreTest, SyntheticMatrixCsumAlgorithm) { if (string(GetParam()) != "bluestore") return; -- 2.47.3