[Groonga-commit] groonga/grnxx at 1938198 [master] Add a test for grnxx::Storage::sweep().

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index