[Libreoffice-commits] online.git: loolwsd/test
Michael Meeks
michael.meeks at collabora.com
Wed Apr 13 13:36:07 UTC 2016
loolwsd/test/UnitPrefork.cpp | 26 +++++++++++++++++++-------
loolwsd/test/run_unit.sh.in | 6 ++++--
2 files changed, 23 insertions(+), 9 deletions(-)
New commits:
commit 1eb92c0dc99c7f91e5160dcf426704c94779ad28
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Wed Apr 13 10:32:01 2016 +0100
Cleanup and aggregate memory stats.
diff --git a/loolwsd/test/UnitPrefork.cpp b/loolwsd/test/UnitPrefork.cpp
index c56e2fc..aad9a69 100644
--- a/loolwsd/test/UnitPrefork.cpp
+++ b/loolwsd/test/UnitPrefork.cpp
@@ -40,18 +40,22 @@ public:
numPrefork = NumToPrefork;
}
- std::string getMemory(const std::shared_ptr<Poco::Net::WebSocket> &socket)
+ void getMemory(const std::shared_ptr<Poco::Net::WebSocket> &socket,
+ size_t &totalPSS, size_t &totalDirty)
{
/// Fetch memory usage data from the last process ...
socket->sendFrame("unit-memdump: \n", sizeof("unit-memdump: \n")-1);
int flags;
char buffer[4096];
- std::cout << "Waiting for memory stats" << std::endl;
int length = socket->receiveFrame(buffer, sizeof (buffer), flags);
std::string memory = LOOLProtocol::getFirstLine(buffer, length);
- return memory;
+// std::cout << "Got memory stats '" << memory << "'" << std::endl;
+ Poco::StringTokenizer tokens(memory, " ");
+ assert (tokens.count() == 2);
+ totalPSS += atoi(tokens[0].c_str());
+ totalDirty += atoi(tokens[1].c_str());
}
virtual void newChild(const std::shared_ptr<Poco::Net::WebSocket> &socket) override
@@ -64,10 +68,18 @@ public:
std::cout << "Launched " << _numStarted << " in "
<< (1.0 * elapsed)/Poco::Timestamp::resolution() << std::endl;
- int num = 0;
+ size_t totalPSSKb = 0;
+ size_t totalDirtyKb = 0;
for (auto child : _childSockets)
- std::cout << "Memory of " << ++num << " : " <<
- getMemory(child) << std::endl;
+ getMemory(child, totalPSSKb, totalDirtyKb);
+
+ std::cout << "Memory use total " << totalPSSKb << "k shared "
+ << totalDirtyKb << "k dirty" << std::endl;
+
+ totalPSSKb /= _childSockets.size();
+ totalDirtyKb /= _childSockets.size();
+ std::cout << "Memory use average " << totalPSSKb << "k shared "
+ << totalDirtyKb << "k dirty" << std::endl;
exitTest(TestResult::TEST_OK);
}
@@ -107,7 +119,7 @@ namespace {
numPSSKb += atoi(value);
}
std::ostringstream oss;
- oss << numPSSKb << "k pss " << numDirtyKb << "k dirty";
+ oss << numPSSKb << " " << numDirtyKb;
return oss.str();
}
}
diff --git a/loolwsd/test/run_unit.sh.in b/loolwsd/test/run_unit.sh.in
index 63b3bdc..1e0ae15 100755
--- a/loolwsd/test/run_unit.sh.in
+++ b/loolwsd/test/run_unit.sh.in
@@ -26,8 +26,10 @@ echo > run_unit.sh.trs
for tst in timeout storage prefork; do
tst_log="test_output/$tst.log"
echo "Running test: $tst | $tst_log ...";
- if ../loolwsd --systemplate="@SYSTEMPLATE_PATH@" --lotemplate="@LO_PATH@" \
- --childroot="@JAILS_PATH@" --unitlib=".libs/unit-$tst.so" 2> "$tst_log"; then
+ if ${abs_top_builddir}/loolwsd --systemplate="@SYSTEMPLATE_PATH@" \
+ --lotemplate="@LO_PATH@" \
+ --childroot="@JAILS_PATH@" \
+ --unitlib=".libs/unit-$tst.so" 2> "$tst_log"; then
echo "Test $tst passed."
echo ":test-result: PASS $tst" >> $test_output
else
More information about the Libreoffice-commits
mailing list