From 25f34eebb0f3eb31e327f1a64d18db2817c6d694 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Wed, 2 Dec 2020 17:55:35 +0000 Subject: c++17 and c++2a need different handling. --- document/src/tests/documentselectparsertest.cpp | 11 +++++++++-- juniper/src/test/auxTest.cpp | 25 ++++++++++++++++--------- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/document/src/tests/documentselectparsertest.cpp b/document/src/tests/documentselectparsertest.cpp index 7e8e3796aaf..ab7f2cf1972 100644 --- a/document/src/tests/documentselectparsertest.cpp +++ b/document/src/tests/documentselectparsertest.cpp @@ -1234,17 +1234,24 @@ TEST_F(DocumentSelectParserTest, testDocumentIdsInRemoves) namespace { +#if __cplusplus > 201703L const char * -bad_cast_from_u8(const char8_t *p) { +char_from_u8(const char8_t * p) { return reinterpret_cast(p); } +#else +const char * +char_from_u8(const char * p) { + return p; +} +#endif } TEST_F(DocumentSelectParserTest, testUtf8) { createDocs(); - vespalib::string utf8name = bad_cast_from_u8(u8"H\u00e5kon"); + vespalib::string utf8name = char_from_u8(u8"H\u00e5kon"); EXPECT_EQ(size_t(6), utf8name.size()); /// \todo TODO (was warning): UTF8 test for glob/regex support in selection language disabled. Known not to work diff --git a/juniper/src/test/auxTest.cpp b/juniper/src/test/auxTest.cpp index 02697fd96ba..62bed396d44 100644 --- a/juniper/src/test/auxTest.cpp +++ b/juniper/src/test/auxTest.cpp @@ -320,16 +320,23 @@ void test_dump(const char* s, unsigned int len) namespace { +#if __cplusplus > 201703L const char * -bad_cast_from_u8(const char8_t * p) { +char_from_u8(const char8_t * p) { return reinterpret_cast(p); } +#else +const char * +char_from_u8(const char * p) { + return p; +} +#endif } void AuxTest::TestUTF8(unsigned int size) { - const char* s = bad_cast_from_u8(u8"\u00e5pent s\u00f8k\u00e6\u00f8\u00e5\u00e6\u00f8\u00e5\u00e6\u00f8\u00e5"); + const char* s = char_from_u8(u8"\u00e5pent s\u00f8k\u00e6\u00f8\u00e5\u00e6\u00f8\u00e5\u00e6\u00f8\u00e5"); const unsigned char* p = (const unsigned char*)s; int moved = 0; @@ -386,20 +393,20 @@ void AuxTest::TestUTF8(unsigned int size) void AuxTest::TestUTF8context() { - const char* iso_cont = bad_cast_from_u8(u8"AND(m\u00b5ss,fast,s\u00f8kemotor,\u00e5relang)"); + const char* iso_cont = char_from_u8(u8"AND(m\u00b5ss,fast,s\u00f8kemotor,\u00e5relang)"); juniper::QueryParser q(iso_cont); juniper::QueryHandle qh(q, NULL, juniper::_Juniper->getModifier()); // some content - std::string s(bad_cast_from_u8(u8"Fast leverer s\u00d8kemotorer og andre nyttige ting for \u00e5 finne frem p\u00e5 ")); - s.append(bad_cast_from_u8(u8"internett. Teknologien er basert p\u00e5 \u00c5relang")); + std::string s(char_from_u8(u8"Fast leverer s\u00d8kemotorer og andre nyttige ting for \u00e5 finne frem p\u00e5 ")); + s.append(char_from_u8(u8"internett. Teknologien er basert p\u00e5 \u00c5relang")); s += UNIT_SEPARATOR; - s.append(bad_cast_from_u8(u8"norsk innsats og forskning i")); + s.append(char_from_u8(u8"norsk innsats og forskning i")); s += GROUP_SEPARATOR; - s.append(bad_cast_from_u8(u8"trondheimsmilj\u00f8et. M\u00b5ss med denne nye funksjonaliteten for \u00e5 vise frem")); + s.append(char_from_u8(u8"trondheimsmilj\u00f8et. M\u00b5ss med denne nye funksjonaliteten for \u00e5 vise frem")); s += UNIT_SEPARATOR; - s.append(bad_cast_from_u8(u8" beste forekomst av s\u00f8ket med s\u00f8kemotor til brukeren blir det enda bedre. ")); - s.append(bad_cast_from_u8(u8"Hvis bare UTF8-kodingen virker som den skal for tegn som tar mer enn \u00e9n byte.")); + s.append(char_from_u8(u8" beste forekomst av s\u00f8ket med s\u00f8kemotor til brukeren blir det enda bedre. ")); + s.append(char_from_u8(u8"Hvis bare UTF8-kodingen virker som den skal for tegn som tar mer enn \u00e9n byte.")); juniper::Result* res = juniper::Analyse(juniper::TestConfig, &qh, s.c_str(), s.size(), 0, 0, 0); _test(res != NULL); -- cgit v1.2.3