From 134ee89260bc2534fa9f8fd4e6404bb754e168f9 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 20 Jun 2016 09:51:56 -0400 Subject: [PATCH] ceph_test_objectstore: zero-length write should not affect object size Signed-off-by: Sage Weil --- src/test/objectstore/store_test.cc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index f459fff0cf9..af02b96729b 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -1974,6 +1974,31 @@ TEST_P(StoreTest, MiscFragmentTests) { } +TEST_P(StoreTest, ZeroLengthWrite) { + ObjectStore::Sequencer osr("test"); + int r; + coll_t cid; + ghobject_t hoid(hobject_t(sobject_t("foo", CEPH_NOSNAP))); + { + ObjectStore::Transaction t; + t.create_collection(cid, 0); + t.touch(cid, hoid); + r = apply_transaction(store, &osr, std::move(t)); + ASSERT_EQ(r, 0); + } + { + ObjectStore::Transaction t; + bufferlist empty; + t.write(cid, hoid, 1048576, 0, empty); + r = apply_transaction(store, &osr, std::move(t)); + ASSERT_EQ(r, 0); + } + struct stat stat; + r = store->stat(cid, hoid, &stat); + ASSERT_EQ(0, r); + ASSERT_EQ(0, stat.st_size); +} + TEST_P(StoreTest, SimpleAttrTest) { ObjectStore::Sequencer osr("test"); int r; -- 2.39.5