[Groonga-commit] groonga/grnxx at 5530ef7 [master] Add tests for open_node() and unlink_node().

Back to archive index

susumu.yata null+****@clear*****
Sun Apr 28 21:39:27 JST 2013


susumu.yata	2013-04-28 21:39:27 +0900 (Sun, 28 Apr 2013)

  New Revision: 5530ef7cc7006bb5b53c22f84f59f4b98375de2f
  https://github.com/groonga/grnxx/commit/5530ef7cc7006bb5b53c22f84f59f4b98375de2f

  Message:
    Add tests for open_node() and unlink_node().

  Modified files:
    test/test_storage.cpp

  Modified: test/test_storage.cpp (+47 -2)
===================================================================
--- test/test_storage.cpp    2013-04-28 20:50:28 +0900 (ed7391f)
+++ test/test_storage.cpp    2013-04-28 21:39:27 +0900 (226f9f8)
@@ -482,11 +482,56 @@ void test_storage_create_node() {
 }
 
 void test_storage_open_node() {
-  // TODO
+  const char FILE_PATH[] = "temp.grn";
+  grnxx::Storage::unlink(FILE_PATH);
+  std::unique_ptr<grnxx::Storage> storage;
+  grnxx::StorageNode node;
+  std::uint32_t node_id_1, node_id_2;
+
+  grnxx::StorageOptions options;
+  options.root_size = 1 << 16;
+  storage.reset(grnxx::Storage::create(FILE_PATH, grnxx::STORAGE_DEFAULT,
+                                       options));
+  node = storage->create_node(grnxx::STORAGE_ROOT_NODE_ID, 1 << 20);
+  assert(node.is_valid());
+  node_id_1 = node.id();
+  node = storage->create_node(grnxx::STORAGE_ROOT_NODE_ID, 1 << 24);
+  assert(node.is_valid());
+  node_id_2 = node.id();
+
+  storage.reset(grnxx::Storage::open(FILE_PATH));
+  node = storage->open_node(grnxx::STORAGE_ROOT_NODE_ID);
+  assert(node.is_valid());
+  assert(node.status() == grnxx::STORAGE_NODE_ACTIVE);
+  assert(node.size() == options.root_size);
+  node = storage->open_node(node_id_1);
+  assert(node.is_valid());
+  assert(node.status() == grnxx::STORAGE_NODE_ACTIVE);
+  assert(node.size() == (1 << 20));
+  node = storage->open_node(node_id_2);
+  assert(node.is_valid());
+  assert(node.status() == grnxx::STORAGE_NODE_ACTIVE);
+  assert(node.size() == (1 << 24));
+
+  storage.reset();
+  assert(grnxx::Storage::unlink(FILE_PATH));
 }
 
 void test_storage_unlink_node() {
-  // TODO
+  std::unique_ptr<grnxx::Storage> storage;
+  grnxx::StorageNode node_1, node_2;
+
+  storage.reset(grnxx::Storage::create(nullptr));
+  node_1 = storage->create_node(grnxx::STORAGE_ROOT_NODE_ID, 1 << 20);
+  assert(node_1.is_valid());
+  node_2 = storage->create_node(grnxx::STORAGE_ROOT_NODE_ID, 1 << 24);
+  assert(node_2.is_valid());
+
+  assert(storage->unlink_node(node_1.id()));
+  assert(node_1.status() == grnxx::STORAGE_NODE_MARKED);
+  assert(storage->unlink_node(node_2.id()));
+  assert(node_2.status() == grnxx::STORAGE_NODE_MARKED);
+  assert(!storage->unlink_node(grnxx::STORAGE_ROOT_NODE_ID));
 }
 
 void test_storage_sweep() {
-------------- next part --------------
HTML����������������������������...
Download 



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