X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftest%2Fobjectstore%2Ftest_transaction.cc;fp=src%2Fceph%2Fsrc%2Ftest%2Fobjectstore%2Ftest_transaction.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=6d7c9fe0f984b798d3d21035650152edc7b2ccf7;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/test/objectstore/test_transaction.cc b/src/ceph/src/test/objectstore/test_transaction.cc deleted file mode 100644 index 6d7c9fe..0000000 --- a/src/ceph/src/test/objectstore/test_transaction.cc +++ /dev/null @@ -1,213 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2016 Casey Bodley - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#include "os/ObjectStore.h" -#include -#include "common/Clock.h" -#include "include/utime.h" -#include - -TEST(Transaction, MoveConstruct) -{ - auto a = ObjectStore::Transaction{}; - a.nop(); - ASSERT_FALSE(a.empty()); - - // move-construct in b - auto b = std::move(a); - ASSERT_TRUE(a.empty()); - ASSERT_FALSE(b.empty()); -} - -TEST(Transaction, MoveAssign) -{ - auto a = ObjectStore::Transaction{}; - a.nop(); - ASSERT_FALSE(a.empty()); - - auto b = ObjectStore::Transaction{}; - b = std::move(a); // move-assign to b - ASSERT_TRUE(a.empty()); - ASSERT_FALSE(b.empty()); -} - -TEST(Transaction, CopyConstruct) -{ - auto a = ObjectStore::Transaction{}; - a.nop(); - ASSERT_FALSE(a.empty()); - - auto b = a; // copy-construct in b - ASSERT_FALSE(a.empty()); - ASSERT_FALSE(b.empty()); -} - -TEST(Transaction, CopyAssign) -{ - auto a = ObjectStore::Transaction{}; - a.nop(); - ASSERT_FALSE(a.empty()); - - auto b = ObjectStore::Transaction{}; - b = a; // copy-assign to b - ASSERT_FALSE(a.empty()); - ASSERT_FALSE(b.empty()); -} - -TEST(Transaction, Swap) -{ - auto a = ObjectStore::Transaction{}; - a.nop(); - ASSERT_FALSE(a.empty()); - - auto b = ObjectStore::Transaction{}; - std::swap(a, b); // swap a and b - ASSERT_TRUE(a.empty()); - ASSERT_FALSE(b.empty()); -} - -ObjectStore::Transaction generate_transaction() -{ - auto a = ObjectStore::Transaction{}; - a.nop(); - - coll_t cid; - object_t obj("test_name"); - snapid_t snap(0); - hobject_t hoid(obj, "key", snap, 0, 0, "nspace"); - ghobject_t oid(hoid); - - coll_t acid; - object_t aobj("another_test_name"); - snapid_t asnap(0); - hobject_t ahoid(obj, "another_key", snap, 0, 0, "another_nspace"); - ghobject_t aoid(hoid); - std::set keys; - keys.insert("any_1"); - keys.insert("any_2"); - keys.insert("any_3"); - - bufferlist bl; - bl.append_zero(4096); - - a.write(cid, oid, 1, 4096, bl, 0); - - a.omap_setkeys(acid, aoid, bl); - - a.omap_rmkeys(cid, aoid, keys); - - a.touch(acid, oid); - - return a; -} - -TEST(Transaction, MoveRangesDelSrcObj) -{ - auto t = ObjectStore::Transaction{}; - t.nop(); - - coll_t c(spg_t(pg_t(1,2), shard_id_t::NO_SHARD)); - - ghobject_t o1(hobject_t("obj", "", 123, 456, -1, "")); - ghobject_t o2(hobject_t("obj2", "", 123, 456, -1, "")); - vector> move_info = { - make_pair(1, 5), - make_pair(10, 5) - }; - - t.touch(c, o1); - bufferlist bl; - bl.append("some data"); - t.write(c, o1, 1, bl.length(), bl); - t.write(c, o1, 10, bl.length(), bl); - - t.clone(c, o1, o2); - bl.append("some other data"); - t.write(c, o2, 1, bl.length(), bl); -} - -TEST(Transaction, GetNumBytes) -{ - auto a = ObjectStore::Transaction{}; - a.nop(); - ASSERT_TRUE(a.get_encoded_bytes() == a.get_encoded_bytes_test()); - - coll_t cid; - object_t obj("test_name"); - snapid_t snap(0); - hobject_t hoid(obj, "key", snap, 0, 0, "nspace"); - ghobject_t oid(hoid); - - coll_t acid; - object_t aobj("another_test_name"); - snapid_t asnap(0); - hobject_t ahoid(obj, "another_key", snap, 0, 0, "another_nspace"); - ghobject_t aoid(hoid); - std::set keys; - keys.insert("any_1"); - keys.insert("any_2"); - keys.insert("any_3"); - - bufferlist bl; - bl.append_zero(4096); - - a.write(cid, oid, 1, 4096, bl, 0); - ASSERT_TRUE(a.get_encoded_bytes() == a.get_encoded_bytes_test()); - - a.omap_setkeys(acid, aoid, bl); - ASSERT_TRUE(a.get_encoded_bytes() == a.get_encoded_bytes_test()); - - a.omap_rmkeys(cid, aoid, keys); - ASSERT_TRUE(a.get_encoded_bytes() == a.get_encoded_bytes_test()); - - a.touch(acid, oid); - ASSERT_TRUE(a.get_encoded_bytes() == a.get_encoded_bytes_test()); -} - -void bench_num_bytes(bool legacy) -{ - const int max = 2500000; - auto a = generate_transaction(); - - if (legacy) { - cout << "get_encoded_bytes_test: "; - } else { - cout << "get_encoded_bytes: "; - } - - utime_t start = ceph_clock_now(); - if (legacy) { - for (int i = 0; i < max; ++i) { - a.get_encoded_bytes_test(); - } - } else { - for (int i = 0; i < max; ++i) { - a.get_encoded_bytes(); - } - } - - utime_t end = ceph_clock_now(); - cout << max << " encodes in " << (end - start) << std::endl; - -} - -TEST(Transaction, GetNumBytesBenchLegacy) -{ - bench_num_bytes(true); -} - -TEST(Transaction, GetNumBytesBenchCurrent) -{ - bench_num_bytes(false); -}