From 00b275b0aed56b32568c6819ca038b8b6df47005 Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Wed, 19 Nov 2014 11:52:52 +0800 Subject: [PATCH] StoreTest: Add collection_getattr(s) tests Signed-off-by: Haomai Wang --- src/test/objectstore/store_test.cc | 92 +++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 3 deletions(-) diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index fefecc5529022..84b14416dcd3c 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -1066,7 +1066,85 @@ TEST_P(StoreTest, HashCollisionTest) { } ObjectStore::Transaction t; t.remove_collection(cid); - store->apply_transaction(t); + r = store->apply_transaction(t); + ASSERT_EQ(r, 0); +} + +TEST_P(StoreTest, CollectionAttrTest) { + coll_t cid("blah"); + int r; + + { + ObjectStore::Transaction t; + t.create_collection(cid); + r = store->apply_transaction(t); + ASSERT_EQ(r, 0); + } + + { + bufferlist bl; + map aset; + char nonexist[] = "nonexist"; + + r = store->collection_getattr(cid, nonexist, bl); + ASSERT_EQ(r, -ENODATA); + + r = store->collection_getattrs(cid, aset); + ASSERT_EQ(r, 0); + ASSERT_EQ(aset.size(), 1u); + } + + { + bufferlist bl; + map aset; + ObjectStore::Transaction t; + char zero_length[] = "zero-length"; + + t.collection_setattr(cid, zero_length, bl); + r = store->apply_transaction(t); + ASSERT_EQ(r, 0); + ASSERT_EQ(bl.length(), 0u); + + r = store->collection_getattr(cid, zero_length, bl); + ASSERT_EQ(r, 0); + ASSERT_EQ(bl.length(), 0u); + + r = store->collection_getattrs(cid, aset); + ASSERT_EQ(r, 0); + ASSERT_EQ(aset.size(), 1u); + ASSERT_EQ(aset[zero_length].length(), 0); + } + + { + bufferlist bl; + map aset; + ObjectStore::Transaction t; + char normal[] = "normal"; + char data[] = "dasdfjasdlkas"; + + bl.append(data, sizeof(data)); + t.collection_setattr(cid, normal, bl); + r = store->apply_transaction(t); + ASSERT_EQ(r, 0); + bl.clear(); + + r = store->collection_getattr(cid, normal, bl); + ASSERT_EQ(r, sizeof(data)); + ASSERT_EQ(bl.length(), sizeof(data)); + bl.clear(); + + r = store->collection_getattrs(cid, aset); + ASSERT_EQ(r, 0); + ASSERT_EQ(aset.size(), 2u); + ASSERT_EQ(aset[normal].length(), sizeof(data)); + } + + { + ObjectStore::Transaction t; + t.remove_collection(cid); + r = store->apply_transaction(t); + ASSERT_EQ(r, 0); + } } TEST_P(StoreTest, ScrubTest) { @@ -1140,7 +1218,8 @@ TEST_P(StoreTest, ScrubTest) { } ObjectStore::Transaction t; t.remove_collection(cid); - store->apply_transaction(t); + r = store->apply_transaction(t); + ASSERT_EQ(r, 0); } @@ -1259,7 +1338,8 @@ TEST_P(StoreTest, OMapTest) { ObjectStore::Transaction t; t.remove(cid, hoid); t.remove_collection(cid); - store->apply_transaction(t); + r = store->apply_transaction(t); + ASSERT_EQ(r, 0); } TEST_P(StoreTest, XattrTest) { @@ -1340,6 +1420,12 @@ TEST_P(StoreTest, XattrTest) { bufferlist bl2; bl2.push_back(bp); ASSERT_TRUE(bl2 == attrs["attr3"]); + + ObjectStore::Transaction t; + t.remove(cid, hoid); + t.remove_collection(cid); + r = store->apply_transaction(t); + ASSERT_EQ(r, 0); } void colsplittest( -- 2.39.5