[Groonga-commit] groonga/grnxx at f7a616f [master] Add tests for grnxx::Array::open().

Back to archive index

susumu.yata null+****@clear*****
Thu May 16 17:16:37 JST 2013


susumu.yata	2013-05-16 17:16:37 +0900 (Thu, 16 May 2013)

  New Revision: f7a616f2edcdfd75e548e23cccb5981274c43f3d
  https://github.com/groonga/grnxx/commit/f7a616f2edcdfd75e548e23cccb5981274c43f3d

  Message:
    Add tests for grnxx::Array::open().

  Modified files:
    test/test_array.cpp

  Modified: test/test_array.cpp (+41 -0)
===================================================================
--- test/test_array.cpp    2013-05-16 17:16:07 +0900 (98ce371)
+++ test/test_array.cpp    2013-05-16 17:16:37 +0900 (dd06c76)
@@ -31,6 +31,7 @@ void test_array1d() {
 
   std::unique_ptr<grnxx::Storage> storage(grnxx::Storage::create(nullptr));
   grnxx::Array<int, PAGE_SIZE, 1, 1> array;
+  uint32_t storage_node_id;
 
   assert(array.create(storage.get(), grnxx::STORAGE_ROOT_NODE_ID));
   assert(array);
@@ -38,6 +39,8 @@ void test_array1d() {
   assert(array.table_size() == 1);
   assert(array.secondary_table_size() == 1);
   assert(array.size() == SIZE);
+  storage_node_id = array.storage_node_id();
+
   for (std::uint64_t i = 0; i < SIZE; ++i) {
     assert(array.set(i, static_cast<int>(i)));
   }
@@ -50,6 +53,13 @@ void test_array1d() {
     assert(array.get_page(i));
   }
 
+  assert(array.open(storage.get(), storage_node_id));
+  for (std::uint64_t i = 0; i < SIZE; ++i) {
+    int value;
+    assert(array.get(i, &value));
+    assert(value == static_cast<int>(i));
+  }
+
   assert(array.create(storage.get(), grnxx::STORAGE_ROOT_NODE_ID, 1));
   assert(array);
   for (std::uint64_t i = 0; i < SIZE; ++i) {
@@ -70,6 +80,7 @@ void test_array2d() {
 
   std::unique_ptr<grnxx::Storage> storage(grnxx::Storage::create(nullptr));
   grnxx::Array<int, PAGE_SIZE, TABLE_SIZE, 1> array;
+  uint32_t storage_node_id;
 
   assert(array.create(storage.get(), grnxx::STORAGE_ROOT_NODE_ID));
   assert(array);
@@ -77,6 +88,8 @@ void test_array2d() {
   assert(array.table_size() == TABLE_SIZE);
   assert(array.secondary_table_size() == 1);
   assert(array.size() == SIZE);
+  storage_node_id = array.storage_node_id();
+
   for (std::uint64_t i = 0; i < SIZE; ++i) {
     assert(array.set(i, static_cast<int>(i)));
   }
@@ -89,6 +102,13 @@ void test_array2d() {
     assert(array.get_page(i));
   }
 
+  assert(array.open(storage.get(), storage_node_id));
+  for (std::uint64_t i = 0; i < SIZE; ++i) {
+    int value;
+    assert(array.get(i, &value));
+    assert(value == static_cast<int>(i));
+  }
+
   assert(array.create(storage.get(), grnxx::STORAGE_ROOT_NODE_ID, 1));
   assert(array);
   for (std::uint64_t i = 0; i < SIZE; ++i) {
@@ -111,6 +131,7 @@ void test_array3d() {
 
   std::unique_ptr<grnxx::Storage> storage(grnxx::Storage::create(nullptr));
   grnxx::Array<int, PAGE_SIZE, TABLE_SIZE, SECONDARY_TABLE_SIZE> array;
+  uint32_t storage_node_id;
 
   assert(array.create(storage.get(), grnxx::STORAGE_ROOT_NODE_ID));
   assert(array);
@@ -118,6 +139,8 @@ void test_array3d() {
   assert(array.table_size() == TABLE_SIZE);
   assert(array.secondary_table_size() == SECONDARY_TABLE_SIZE);
   assert(array.size() == SIZE);
+  storage_node_id = array.storage_node_id();
+
   for (std::uint64_t i = 0; i < SIZE; ++i) {
     assert(array.set(i, static_cast<int>(i)));
   }
@@ -130,6 +153,13 @@ void test_array3d() {
     assert(array.get_page(i));
   }
 
+  assert(array.open(storage.get(), storage_node_id));
+  for (std::uint64_t i = 0; i < SIZE; ++i) {
+    int value;
+    assert(array.get(i, &value));
+    assert(value == static_cast<int>(i));
+  }
+
   assert(array.create(storage.get(), grnxx::STORAGE_ROOT_NODE_ID, 1));
   assert(array);
   for (std::uint64_t i = 0; i < SIZE; ++i) {
@@ -152,6 +182,7 @@ void test_bit_array() {
 
   std::unique_ptr<grnxx::Storage> storage(grnxx::Storage::create(nullptr));
   grnxx::Array<bool, PAGE_SIZE, TABLE_SIZE, SECONDARY_TABLE_SIZE> array;
+  uint32_t storage_node_id;
 
   assert(array.create(storage.get(), grnxx::STORAGE_ROOT_NODE_ID));
   assert(array);
@@ -159,6 +190,8 @@ void test_bit_array() {
   assert(array.table_size() == TABLE_SIZE);
   assert(array.secondary_table_size() == SECONDARY_TABLE_SIZE);
   assert(array.size() == SIZE);
+  storage_node_id = array.storage_node_id();
+
   for (std::uint64_t i = 0; i < SIZE; ++i) {
     const bool value = (i % 3) != 0;
     assert(array.set(i, value));
@@ -176,6 +209,14 @@ void test_bit_array() {
   for (std::uint64_t i = 0; i < (SIZE / PAGE_SIZE); ++i) {
     assert(array.get_page(i));
   }
+
+  assert(array.open(storage.get(), storage_node_id));
+  for (std::uint64_t i = 0; i < SIZE; ++i) {
+    const bool expected_value = (i % 3) != 0;
+    bool value;
+    assert(array.get(i, &value));
+    assert(value == expected_value);
+  }
 }
 
 }  // namesapce
-------------- next part --------------
HTML����������������������������...
下载 



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