loolwsd/test/httpwstest.cpp | 109 ++++++++++++-------------------------------- 1 file changed, 30 insertions(+), 79 deletions(-)
New commits: commit 8ea127407b347a9446ffcd24f8cff9de691c3010 Author: Henry Castro <hcas...@collabora.com> Date: Mon Apr 25 18:06:50 2016 -0400 loolwsd: test: replace std::regex diff --git a/loolwsd/test/httpwstest.cpp b/loolwsd/test/httpwstest.cpp index 6c183be..42aa396 100644 --- a/loolwsd/test/httpwstest.cpp +++ b/loolwsd/test/httpwstest.cpp @@ -114,6 +114,9 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture std::string& response, const bool isLine); + void getPartHashCodes(const std::string response, + std::vector<std::string>& parts); + std::shared_ptr<Poco::Net::WebSocket> connectLOKit(Poco::Net::HTTPRequest& request, Poco::Net::HTTPResponse& response); @@ -931,21 +934,8 @@ void HTTPWSTest::testInsertDelete() const std::string prefix = "parts="; const int totalParts = std::stoi(tokens[1].substr(prefix.size())); CPPUNIT_ASSERT_EQUAL(1, totalParts); - - std::regex endLine("[^\n\r]+"); - std::regex number("^[0-9]+$"); - std::smatch match; - for (std::sregex_iterator it = std::sregex_iterator(response.begin(), response.end(), endLine); - it != std::sregex_iterator(); ++it) - { - const auto str = (*it).str(); - if (std::regex_match(str, match, number)) - { - parts.push_back(match.str()); - } - } + getPartHashCodes(response, parts); CPPUNIT_ASSERT_EQUAL(totalParts, (int)parts.size()); - parts.clear(); } // insert 10 slides @@ -959,20 +949,8 @@ void HTTPWSTest::testInsertDelete() const std::string prefix = "parts="; const int totalParts = std::stoi(tokens[1].substr(prefix.size())); - std::regex endLine("[^\n\r]+"); - std::regex number("^[0-9]+$"); - std::smatch match; - for (std::sregex_iterator regex_it = std::sregex_iterator(response.begin(), response.end(), endLine); - regex_it != std::sregex_iterator(); ++regex_it) - { - const auto str = (*regex_it).str(); - if (std::regex_match(str, match, number)) - { - parts.push_back(match.str()); - } - } + getPartHashCodes(response, parts); CPPUNIT_ASSERT_EQUAL(totalParts, (int)parts.size()); - parts.clear(); } } @@ -987,20 +965,8 @@ void HTTPWSTest::testInsertDelete() const std::string prefix = "parts="; const int totalParts = std::stoi(tokens[1].substr(prefix.size())); - std::regex endLine("[^\n\r]+"); - std::regex number("^[0-9]+$"); - std::smatch match; - for (std::sregex_iterator regex_it = std::sregex_iterator(response.begin(), response.end(), endLine); - regex_it != std::sregex_iterator(); ++regex_it) - { - const auto str = (*regex_it).str(); - if (std::regex_match(str, match, number)) - { - parts.push_back(match.str()); - } - } + getPartHashCodes(response, parts); CPPUNIT_ASSERT_EQUAL(totalParts, (int)parts.size()); - parts.clear(); } } @@ -1015,20 +981,8 @@ void HTTPWSTest::testInsertDelete() const std::string prefix = "parts="; const int totalParts = std::stoi(tokens[1].substr(prefix.size())); - std::regex endLine("[^\n\r]+"); - std::regex number("^[0-9]+$"); - std::smatch match; - for (std::sregex_iterator regex_it = std::sregex_iterator(response.begin(), response.end(), endLine); - regex_it != std::sregex_iterator(); ++regex_it) - { - const auto str = (*regex_it).str(); - if (std::regex_match(str, match, number)) - { - parts.push_back(match.str()); - } - } + getPartHashCodes(response, parts); CPPUNIT_ASSERT_EQUAL(totalParts, (int)parts.size()); - parts.clear(); } } @@ -1043,20 +997,8 @@ void HTTPWSTest::testInsertDelete() const std::string prefix = "parts="; const int totalParts = std::stoi(tokens[1].substr(prefix.size())); - std::regex endLine("[^\n\r]+"); - std::regex number("^[0-9]+$"); - std::smatch match; - for (std::sregex_iterator regex_it = std::sregex_iterator(response.begin(), response.end(), endLine); - regex_it != std::sregex_iterator(); ++regex_it) - { - const auto str = (*regex_it).str(); - if (std::regex_match(str, match, number)) - { - parts.push_back(match.str()); - } - } + getPartHashCodes(response, parts); CPPUNIT_ASSERT_EQUAL(totalParts, (int)parts.size()); - parts.clear(); } } @@ -1070,20 +1012,8 @@ void HTTPWSTest::testInsertDelete() const int totalParts = std::stoi(tokens[1].substr(prefix.size())); CPPUNIT_ASSERT_EQUAL(1, totalParts); - std::regex endLine("[^\n\r]+"); - std::regex number("^[0-9]+$"); - std::smatch match; - for (std::sregex_iterator it = std::sregex_iterator(response.begin(), response.end(), endLine); - it != std::sregex_iterator(); ++it) - { - const auto str = (*it).str(); - if (std::regex_match(str, match, number)) - { - parts.push_back(match.str()); - } - } + getPartHashCodes(response, parts); CPPUNIT_ASSERT_EQUAL(totalParts, (int)parts.size()); - parts.clear(); } socket.shutdown(); @@ -1301,6 +1231,27 @@ int countLoolKitProcesses() return result; } +void HTTPWSTest::getPartHashCodes(const std::string response, + std::vector<std::string>& parts) +{ + Poco::RegularExpression endLine("[^\n\r]+"); + Poco::RegularExpression number("^[0-9]+$"); + Poco::RegularExpression::MatchVec matches; + int offset = 0; + + parts.clear(); + while (endLine.match(response, offset, matches) > 0) + { + CPPUNIT_ASSERT_EQUAL(1, (int)matches.size()); + const auto str = response.substr(matches[0].offset, matches[0].length); + if (number.match(str, 0) > 0) + { + parts.push_back(str); + } + offset = static_cast<int>(matches[0].offset + matches[0].length); + } +} + // Connecting to a Kit process is managed by document broker, that it does several // jobs to establish the bridge connection between the Client and Kit process, // The result, it is mostly time outs to get messages in the unit test and it could fail. _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits