susumu.yata
null+****@clear*****
Tue Apr 30 14:59:46 JST 2013
susumu.yata 2013-04-30 14:59:46 +0900 (Tue, 30 Apr 2013) New Revision: 19381986458a1200aa89ca0d7e987db7d3e0850f https://github.com/groonga/grnxx/commit/19381986458a1200aa89ca0d7e987db7d3e0850f Message: Add a test for grnxx::Storage::sweep(). Modified files: test/test_storage.cpp Modified: test/test_storage.cpp (+20 -3) =================================================================== --- test/test_storage.cpp 2013-04-30 14:59:17 +0900 (65bbb71) +++ test/test_storage.cpp 2013-04-30 14:59:46 +0900 (f59f4e1) @@ -528,14 +528,31 @@ void test_storage_unlink_node() { assert(node_2.is_valid()); assert(storage->unlink_node(node_1.id())); - assert(node_1.status() == grnxx::STORAGE_NODE_MARKED); + assert(node_1.status() == grnxx::STORAGE_NODE_UNLINKED); assert(storage->unlink_node(node_2.id())); - assert(node_2.status() == grnxx::STORAGE_NODE_MARKED); + assert(node_2.status() == grnxx::STORAGE_NODE_UNLINKED); assert(!storage->unlink_node(grnxx::STORAGE_ROOT_NODE_ID)); } void test_storage_sweep() { - // TODO + std::unique_ptr<grnxx::Storage> storage; + grnxx::StorageNode node; + + storage.reset(grnxx::Storage::create(nullptr)); + node = storage->create_node(grnxx::STORAGE_ROOT_NODE_ID, 1 << 18); + assert(node.is_valid()); + assert(storage->create_node(node.id(), 1 << 18).is_valid()); + assert(storage->create_node(node.id(), 1 << 18).is_valid()); + const uint64_t total_size = storage->total_size(); + for (int i = 0; i < 100; ++i) { + assert(storage->unlink_node(node.id())); + assert(storage->sweep(grnxx::Duration(0))); + node = storage->create_node(grnxx::STORAGE_ROOT_NODE_ID, 1 << 18); + assert(node.is_valid()); + assert(storage->create_node(node.id(), 1 << 18).is_valid()); + assert(storage->create_node(node.id(), 1 << 18).is_valid()); + assert(storage->total_size() == total_size); + } } void test_storage_path() { -------------- next part -------------- HTML����������������������������... Download