diff options
-rw-r--r-- | searchlib/CMakeLists.txt | 1 | ||||
-rw-r--r-- | searchlib/src/tests/docstore/lid_info/CMakeLists.txt | 8 | ||||
-rw-r--r-- | searchlib/src/tests/docstore/lid_info/FILES | 1 | ||||
-rw-r--r-- | searchlib/src/tests/docstore/lid_info/lid_info_test.cpp | 69 | ||||
-rw-r--r-- | searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp | 56 |
5 files changed, 79 insertions, 56 deletions
diff --git a/searchlib/CMakeLists.txt b/searchlib/CMakeLists.txt index 413e74adab9..f2ec97b3582 100644 --- a/searchlib/CMakeLists.txt +++ b/searchlib/CMakeLists.txt @@ -116,6 +116,7 @@ vespa_define_module( src/tests/diskindex/pagedict4 src/tests/docstore/document_store src/tests/docstore/document_store_visitor + src/tests/docstore/lid_info src/tests/docstore/logdatastore src/tests/engine/docsumapi src/tests/engine/monitorapi diff --git a/searchlib/src/tests/docstore/lid_info/CMakeLists.txt b/searchlib/src/tests/docstore/lid_info/CMakeLists.txt new file mode 100644 index 00000000000..904e7f1f31f --- /dev/null +++ b/searchlib/src/tests/docstore/lid_info/CMakeLists.txt @@ -0,0 +1,8 @@ +# Copyright 2017 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(searchlib_lid_info_test_app TEST + SOURCES + lid_info_test.cpp + DEPENDS + searchlib +) +vespa_add_test(NAME searchlib_lid_info_test_app COMMAND searchlib_lid_info_test_app) diff --git a/searchlib/src/tests/docstore/lid_info/FILES b/searchlib/src/tests/docstore/lid_info/FILES new file mode 100644 index 00000000000..305288cb9fa --- /dev/null +++ b/searchlib/src/tests/docstore/lid_info/FILES @@ -0,0 +1 @@ +lid_info_test.cpp diff --git a/searchlib/src/tests/docstore/lid_info/lid_info_test.cpp b/searchlib/src/tests/docstore/lid_info/lid_info_test.cpp new file mode 100644 index 00000000000..8e866a682f4 --- /dev/null +++ b/searchlib/src/tests/docstore/lid_info/lid_info_test.cpp @@ -0,0 +1,69 @@ +// Copyright 2017 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include <vespa/vespalib/testkit/test_kit.h> +#include <vespa/searchlib/docstore/lid_info.h> + +#include <vespa/log/log.h> +LOG_SETUP("lid_info_test"); + +using namespace search; + +TEST("require that LidInfo orders file chunk size") +{ + EXPECT_TRUE(LidInfo(1, 1, 1) == LidInfo(1, 1, 1)); + EXPECT_FALSE(LidInfo(1, 1, 1) < LidInfo(1, 1, 1)); + + EXPECT_FALSE(LidInfo(1, 1, 1) == LidInfo(2, 1, 1)); + EXPECT_TRUE(LidInfo(1, 1, 1) < LidInfo(2, 1, 1)); + EXPECT_TRUE(LidInfo(1, 2, 1) < LidInfo(2, 1, 1)); + EXPECT_TRUE(LidInfo(1, 1, 2) < LidInfo(2, 1, 1)); +} + +TEST("require that LidInfo has 8 bytes size and that it can represent the numbers correctly") +{ + EXPECT_EQUAL(8u, sizeof(LidInfo)); + LidInfo a(0,0,0); + EXPECT_EQUAL(0u, a.getFileId()); + EXPECT_EQUAL(0u, a.getChunkId()); + EXPECT_EQUAL(0u, a.size()); + EXPECT_TRUE(a.valid()); + EXPECT_TRUE(a.empty()); + a = LidInfo(1,1,1); + EXPECT_EQUAL(1u, a.getFileId()); + EXPECT_EQUAL(1u, a.getChunkId()); + EXPECT_EQUAL(64u, a.size()); + EXPECT_TRUE(a.valid()); + EXPECT_FALSE(a.empty()); + a = LidInfo(1,1,63); + EXPECT_EQUAL(1u, a.getFileId()); + EXPECT_EQUAL(1u, a.getChunkId()); + EXPECT_EQUAL(64u, a.size()); + EXPECT_TRUE(a.valid()); + EXPECT_FALSE(a.empty()); + a = LidInfo(1,1,64); + EXPECT_EQUAL(1u, a.getFileId()); + EXPECT_EQUAL(1u, a.getChunkId()); + EXPECT_EQUAL(64u, a.size()); + EXPECT_TRUE(a.valid()); + EXPECT_FALSE(a.empty()); + a = LidInfo(1,1,65); + EXPECT_EQUAL(1u, a.getFileId()); + EXPECT_EQUAL(1u, a.getChunkId()); + EXPECT_EQUAL(128u, a.size()); + EXPECT_TRUE(a.valid()); + EXPECT_FALSE(a.empty()); + a = LidInfo(0xffff,0x3fffff,0xffffff80u); + EXPECT_EQUAL(0xffffu, a.getFileId()); + EXPECT_EQUAL(0x3fffffu, a.getChunkId()); + EXPECT_EQUAL(0xffffff80u, a.size()); + EXPECT_TRUE(a.valid()); + EXPECT_FALSE(a.empty()); + EXPECT_EXCEPTION(a = LidInfo(0x10000,0x3fffff,1), std::runtime_error, + "LidInfo(fileId=65536, chunkId=4194303, size=1) has invalid fileId larger than 65535"); + EXPECT_EXCEPTION(a = LidInfo(0xffff,0x400000,1), std::runtime_error, + "LidInfo(fileId=65535, chunkId=4194304, size=1) has invalid chunkId larger than 4194303"); + EXPECT_EXCEPTION(a = LidInfo(0xffff,0x3fffff,0xffffff81u), std::runtime_error, + "LidInfo(fileId=65535, chunkId=4194303, size=4294967169) has too large size larger than 4294967168"); +} + +TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp b/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp index c1cd330df87..c8fcdbc127b 100644 --- a/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp +++ b/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp @@ -127,16 +127,6 @@ checkStats(IDataStore &store, } -TEST("testThatLidInfoOrdersFileChunkSize") { - EXPECT_TRUE(LidInfo(1, 1, 1) == LidInfo(1, 1, 1)); - EXPECT_FALSE(LidInfo(1, 1, 1) < LidInfo(1, 1, 1)); - - EXPECT_FALSE(LidInfo(1, 1, 1) == LidInfo(2, 1, 1)); - EXPECT_TRUE(LidInfo(1, 1, 1) < LidInfo(2, 1, 1)); - EXPECT_TRUE(LidInfo(1, 2, 1) < LidInfo(2, 1, 1)); - EXPECT_TRUE(LidInfo(1, 1, 2) < LidInfo(2, 1, 1)); -} - TEST("test that DirectIOPadding works accordng to spec") { constexpr ssize_t FILE_SIZE = 4096*3; FastOS_File file("directio.test"); @@ -853,52 +843,6 @@ TEST("test that StoreByBucket gives bucket by bucket and ordered within") { sbb.drain(vbo); } -TEST("test that LidInfo has 8 bytes size and that it can represent the numbers correctly.") -{ - EXPECT_EQUAL(8u, sizeof(LidInfo)); - LidInfo a(0,0,0); - EXPECT_EQUAL(0u, a.getFileId()); - EXPECT_EQUAL(0u, a.getChunkId()); - EXPECT_EQUAL(0u, a.size()); - EXPECT_TRUE(a.valid()); - EXPECT_TRUE(a.empty()); - a = LidInfo(1,1,1); - EXPECT_EQUAL(1u, a.getFileId()); - EXPECT_EQUAL(1u, a.getChunkId()); - EXPECT_EQUAL(64u, a.size()); - EXPECT_TRUE(a.valid()); - EXPECT_FALSE(a.empty()); - a = LidInfo(1,1,63); - EXPECT_EQUAL(1u, a.getFileId()); - EXPECT_EQUAL(1u, a.getChunkId()); - EXPECT_EQUAL(64u, a.size()); - EXPECT_TRUE(a.valid()); - EXPECT_FALSE(a.empty()); - a = LidInfo(1,1,64); - EXPECT_EQUAL(1u, a.getFileId()); - EXPECT_EQUAL(1u, a.getChunkId()); - EXPECT_EQUAL(64u, a.size()); - EXPECT_TRUE(a.valid()); - EXPECT_FALSE(a.empty()); - a = LidInfo(1,1,65); - EXPECT_EQUAL(1u, a.getFileId()); - EXPECT_EQUAL(1u, a.getChunkId()); - EXPECT_EQUAL(128u, a.size()); - EXPECT_TRUE(a.valid()); - EXPECT_FALSE(a.empty()); - a = LidInfo(0xffff,0x3fffff,0xffffff80u); - EXPECT_EQUAL(0xffffu, a.getFileId()); - EXPECT_EQUAL(0x3fffffu, a.getChunkId()); - EXPECT_EQUAL(0xffffff80u, a.size()); - EXPECT_TRUE(a.valid()); - EXPECT_FALSE(a.empty()); - EXPECT_EXCEPTION(a = LidInfo(0x10000,0x3fffff,1), std::runtime_error, - "LidInfo(fileId=65536, chunkId=4194303, size=1) has invalid fileId larger than 65535"); - EXPECT_EXCEPTION(a = LidInfo(0xffff,0x400000,1), std::runtime_error, - "LidInfo(fileId=65535, chunkId=4194304, size=1) has invalid chunkId larger than 4194303"); - EXPECT_EXCEPTION(a = LidInfo(0xffff,0x3fffff,0xffffff81u), std::runtime_error, - "LidInfo(fileId=65535, chunkId=4194303, size=4294967169) has too large size larger than 4294967168"); -} TEST_MAIN() { DummyFileHeaderContext::setCreator("logdatastore_test"); TEST_RUN_ALL(); |