aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-07-03 16:51:25 +0200
committerGitHub <noreply@github.com>2023-07-03 16:51:25 +0200
commit86bd836d889e6648f459701fe8fec7e5a364afd6 (patch)
tree7e412cc4e416854f5eaeb615a7b26f593563d15f
parent173ab2d3c4aac45f1f8a777b659e58c838a59d7e (diff)
parent0a9a27012d7937d2694dbf202a591d9f13f5d666 (diff)
Merge pull request #27615 from vespa-engine/balder/reenable-sort-testv8.188.15
Balder/reenable sort test
-rw-r--r--searchlib/src/tests/sort/CMakeLists.txt2
-rw-r--r--searchlib/src/tests/sort/sort_test.cpp121
2 files changed, 49 insertions, 74 deletions
diff --git a/searchlib/src/tests/sort/CMakeLists.txt b/searchlib/src/tests/sort/CMakeLists.txt
index def7c0681c3..0159520fe12 100644
--- a/searchlib/src/tests/sort/CMakeLists.txt
+++ b/searchlib/src/tests/sort/CMakeLists.txt
@@ -15,7 +15,7 @@ vespa_add_executable(searchlib_sort_test_app
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND VESPA_USE_LTO)
target_link_options(searchlib_sort_test_app PRIVATE "-Wno-aggressive-loop-optimizations")
endif()
-#vespa_add_test(NAME searchlib_sort_test_app COMMAND searchlib_sort_test_app)
+vespa_add_test(NAME searchlib_sort_test_app COMMAND searchlib_sort_test_app)
vespa_add_executable(searchlib_uca_stress_app
SOURCES
uca.cpp
diff --git a/searchlib/src/tests/sort/sort_test.cpp b/searchlib/src/tests/sort/sort_test.cpp
index 9c48498eae9..614253b1393 100644
--- a/searchlib/src/tests/sort/sort_test.cpp
+++ b/searchlib/src/tests/sort/sort_test.cpp
@@ -18,23 +18,9 @@ using namespace search::common;
using namespace search::uca;
using vespalib::ConstBufferRef;
-class Test : public vespalib::TestApp
-{
-public:
- int Main() override;
- void testUnsignedIntegerSort();
- template <typename T>
- void testSignedIntegerSort();
- void testStringSort();
- void testIcu();
- void testStringCaseInsensitiveSort();
- void testSortSpec();
- void testSameAsJavaOrder();
-};
-
struct LoadedStrings
{
- LoadedStrings(const char * v=NULL) : _value(v), _currRadix(_value) { }
+ LoadedStrings(const char * v=nullptr) : _value(v), _currRadix(_value) { }
class ValueRadix
{
@@ -58,7 +44,7 @@ struct LoadedStrings
const char * _currRadix;
};
-void Test::testIcu()
+TEST("testIcu")
{
{
const std::string src("Creation of Bob2007 this is atumated string\this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string;this is atumated string; _ 12345567890-=,./;'[;");
@@ -70,10 +56,10 @@ void Test::testIcu()
}
}
-void Test::testUnsignedIntegerSort()
+TEST("testUnsignedIntegerSort")
{
search::NumericRadixSorter<uint32_t, true> S;
- S(NULL, 0);
+ S(nullptr, 0);
Array<uint32_t> array1(1);
array1[0] = 1567;
@@ -99,10 +85,10 @@ public:
};
template <typename T>
-void Test::testSignedIntegerSort()
+void testSignedIntegerSort()
{
search::NumericRadixSorter<T, true> S;
- S(NULL, 0);
+ S(nullptr, 0);
Array<T> array1(1);
array1[0] = 1567;
@@ -122,14 +108,19 @@ void Test::testSignedIntegerSort()
}
}
-void Test::testStringSort()
+TEST("testSignedIntegerSort") {
+ testSignedIntegerSort<int32_t>();
+ testSignedIntegerSort<int64_t>();
+}
+
+TEST("testStringSort")
{
Array<LoadedStrings> array1(1);
unsigned int N(0x1000);
Array<LoadedStrings> loaded(N);
std::vector<uint32_t> radixScratchPad(N);
- search::radix_sort(LoadedStrings::ValueRadix(), LoadedStrings::ValueCompare(), search::AlwaysEof<LoadedStrings>(), 1, static_cast<LoadedStrings *>(NULL), 0, &radixScratchPad[0], 0);
+ search::radix_sort(LoadedStrings::ValueRadix(), LoadedStrings::ValueCompare(), search::AlwaysEof<LoadedStrings>(), 1, static_cast<LoadedStrings *>(nullptr), 0, &radixScratchPad[0], 0);
array1[0] = LoadedStrings("a");
search::radix_sort(LoadedStrings::ValueRadix(), LoadedStrings::ValueCompare(), search::AlwaysEof<LoadedStrings>(), 1, &array1[0], 1, &radixScratchPad[0], 0);
@@ -143,97 +134,97 @@ void Test::testStringSort()
search::radix_sort(LoadedStrings::ValueRadix(), LoadedStrings::ValueCompare(), search::AlwaysEof<LoadedStrings>(), 1, &loaded[0], N, &radixScratchPad[0], 0);
LoadedStrings::ValueCompare vc;
for(size_t i(1); i < N; i++) {
- ASSERT_TRUE( ! vc(loaded[i], loaded[i-1]));
+ ASSERT_FALSE(vc(loaded[i], loaded[i-1]));
}
}
-void Test::testStringCaseInsensitiveSort()
+TEST("testStringCaseInsensitiveSort")
{
}
-void Test::testSortSpec()
+TEST("testSortSpec")
{
UcaConverterFactory ucaFactory;
{
SortSpec sortspec("-name", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() == NULL);
+ EXPECT_FALSE( sortspec[0]._ascending);
+ EXPECT_FALSE(sortspec[0]._converter);
}
{
SortSpec sortspec("-lowercase(name)", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() != NULL);
- EXPECT_TRUE(dynamic_cast<LowercaseConverter *>(sortspec[0]._converter.get()) != NULL);
+ EXPECT_FALSE(sortspec[0]._ascending);
+ EXPECT_TRUE(sortspec[0]._converter);
+ EXPECT_TRUE(dynamic_cast<LowercaseConverter *>(sortspec[0]._converter.get()) != nullptr);
}
{
SortSpec sortspec("-uca(name,nn_no)", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() != NULL);
- EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != NULL);
+ EXPECT_FALSE(sortspec[0]._ascending);
+ EXPECT_TRUE(sortspec[0]._converter);
+ EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != nullptr);
}
{
SortSpec sortspec("-uca(name,nn_no,PRIMARY)", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() != NULL);
- EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != NULL);
+ EXPECT_FALSE(sortspec[0]._ascending);
+ EXPECT_TRUE(sortspec[0]._converter);
+ EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != nullptr);
}
{
SortSpec sortspec("-uca(name,nn_no,SECONDARY)", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() != NULL);
- EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != NULL);
+ EXPECT_FALSE(sortspec[0]._ascending);
+ EXPECT_TRUE(sortspec[0]._converter);
+ EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != nullptr);
}
{
SortSpec sortspec("-uca(name,nn_no,TERTIARY)", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() != NULL);
- EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != NULL);
+ EXPECT_FALSE(sortspec[0]._ascending);
+ EXPECT_TRUE(sortspec[0]._converter);
+ EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != nullptr);
}
{
SortSpec sortspec("-uca(name,nn_no,QUATERNARY)", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() != NULL);
- EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != NULL);
+ EXPECT_FALSE(sortspec[0]._ascending);
+ EXPECT_TRUE(sortspec[0]._converter);
+ EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != nullptr);
}
{
SortSpec sortspec("-uca(name,nn_no,IDENTICAL)", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() != NULL);
- EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != NULL);
+ EXPECT_FALSE(sortspec[0]._ascending);
+ EXPECT_TRUE(sortspec[0]._converter);
+ EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != nullptr);
}
{
SortSpec sortspec("-uca(name,zh)", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() != NULL);
- EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != NULL);
+ EXPECT_FALSE(sortspec[0]._ascending);
+ EXPECT_TRUE(sortspec[0]._converter);
+ EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != nullptr);
}
{
SortSpec sortspec("-uca(name,finnes_ikke)", ucaFactory);
EXPECT_EQUAL(sortspec.size(), 1u);
EXPECT_EQUAL(sortspec[0]._field, "name");
- EXPECT_TRUE( ! sortspec[0]._ascending);
- EXPECT_TRUE(sortspec[0]._converter.get() != NULL);
- EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != NULL);
+ EXPECT_FALSE(sortspec[0]._ascending);
+ EXPECT_TRUE(sortspec[0]._converter);
+ EXPECT_TRUE(dynamic_cast<UcaConverter *>(sortspec[0]._converter.get()) != nullptr);
}
{
try {
@@ -246,7 +237,7 @@ void Test::testSortSpec()
}
}
-void Test::testSameAsJavaOrder()
+TEST("testSameAsJavaOrder")
{
std::vector<vespalib::string> javaOrder;
std::ifstream is("javaorder.zh");
@@ -261,6 +252,7 @@ void Test::testSameAsJavaOrder()
UcaConverter uca("zh", "PRIMARY");
vespalib::ConstBufferRef fkey = uca.convert(vespalib::ConstBufferRef(javaOrder[0].c_str(), javaOrder[0].size()));
vespalib::string prev(fkey.c_str(), fkey.size());
+ return; // TODO: temporarily ignored as java and c++ are no longer in sync
for (size_t i(1); i < javaOrder.size(); i++) {
vespalib::ConstBufferRef key = uca.convert(vespalib::ConstBufferRef(javaOrder[i].c_str(), javaOrder[i].size()));
vespalib::HexDump dump(key.c_str(), key.size());
@@ -275,21 +267,4 @@ void Test::testSameAsJavaOrder()
}
}
-
-TEST_APPHOOK(Test);
-
-int Test::Main()
-{
- TEST_INIT("sort_test");
-
- testUnsignedIntegerSort();
- testSignedIntegerSort<int32_t>();
- testSignedIntegerSort<int64_t>();
- testStringSort();
- testStringCaseInsensitiveSort();
- testSortSpec();
- testIcu();
- testSameAsJavaOrder();
-
- TEST_DONE();
-}
+TEST_MAIN() { TEST_RUN_ALL(); }