common/Util.cpp | 14 +++++++++----- test/Makefile.am | 2 +- test/run_unit.sh.in | 10 ++++++---- test/test.cpp | 5 ++++- 4 files changed, 20 insertions(+), 11 deletions(-)
New commits: commit 6338bf20323cac7ac2b73283b53ebfcffd2d25f5 Author: Michael Meeks <michael.me...@collabora.com> AuthorDate: Thu Sep 5 14:09:51 2019 +0100 Commit: Michael Meeks <michael.me...@collabora.com> CommitDate: Thu Sep 5 14:10:20 2019 +0100 test: add --gdb option to run_unit.sh Change-Id: Iff253d95a1a611536fe5c1244c33471e77c77c81 diff --git a/test/run_unit.sh.in b/test/run_unit.sh.in index 1b4312824..5af9affd8 100755 --- a/test/run_unit.sh.in +++ b/test/run_unit.sh.in @@ -26,6 +26,7 @@ print_help () echo "" echo " --log-file <file> Log output to this file - default /dev/stderr" echo " --trs-file <file> Records the results of a test for automake (default /dev/stderr)" + echo " --gdb Run under gdb if enabled" echo " --valgrind Run under valgrind if enabled" echo " --verbose Print out more stuff - if you run out of things to read" exit 1 @@ -39,7 +40,8 @@ while test $# -gt 0; do --test-name) tst=$2; shift;; --log-file) tst_log=$2; shift;; --trs-file) test_output=$2; shift;; - --valgrind) valgrind=$valgrind_cmd; shift;; + --gdb) trace='gdb --args'; shift;; + --valgrind) trace=$valgrind_cmd; shift;; --verbose) verbose="--verbose";; --help) print_help ;; -*) ;; # ignore @@ -84,7 +86,7 @@ if test "z$tst" == "z"; then export LOOL_TEST_MASTER_PORT=9985 echo "Executing external tests" - ${valgrind} \ + ${trace} \ ${abs_top_builddir}/loolwsd --o:sys_template_path="$systemplate_path" \ --o:lo_template_path="$lo_path" \ --o:child_root_path="$jails_path" \ @@ -106,7 +108,7 @@ if test "z$tst" == "z"; then oldpath=`pwd` cd "${abs_top_builddir}/test" - if eval ${valgrind} ./test ${verbose}; then + if eval ${trace} ./test ${verbose}; then echo "Test run_test.sh passed." echo ":test-result: PASS run_test.sh" >> $oldpath/$test_output retval=0 @@ -124,7 +126,7 @@ if test "z$tst" == "z"; then else # newer unit tests. echo "Running $tst | $tst_log ..."; - if ${valgrind} \ + if ${trace} \ ${abs_top_builddir}/loolwsd --o:sys_template_path="$systemplate_path" \ --o:lo_template_path="$lo_path" \ --o:child_root_path="$jails_path" \ commit 81aa1a07828b9fce03b89fb8470ea950bd2f2ffd Author: Michael Meeks <michael.me...@collabora.com> AuthorDate: Thu Sep 5 14:08:02 2019 +0100 Commit: Michael Meeks <michael.me...@collabora.com> CommitDate: Thu Sep 5 14:10:20 2019 +0100 test: print out the correct way to run all-local test. Change-Id: I2a9a90beff7b2dc689dc2de7df86404018b514fb diff --git a/test/Makefile.am b/test/Makefile.am index 27fc43e99..d5dc5792f 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -161,4 +161,4 @@ all-local: unittest @echo "Running build-time unit tests. For more thorough testing, please run 'make check'." @echo @fc-cache "@LO_PATH@"/share/fonts/truetype - @${top_builddir}/test/unittest + @UNITTEST=1 ${top_builddir}/test/unittest diff --git a/test/test.cpp b/test/test.cpp index b04555ac7..621ff6351 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -159,7 +159,10 @@ bool runClientTests(bool standalone, bool verbose) { std::cerr << "\nTo reproduce the first test failure use:\n\n"; #ifndef UNIT_CLIENT_TESTS - std::cerr << "(cd test; CPPUNIT_TEST_NAME=\"" << (*failures.begin())->failedTestName() << "\" ./run_unit.sh --verbose)\n\n"; + const char *cmd = "./run_unit.sh --verbose"; + if (getenv("UNITTEST")) + cmd = "./unittest"; + std::cerr << "(cd test; CPPUNIT_TEST_NAME=\"" << (*failures.begin())->failedTestName() << "\" " << cmd << ")\n\n"; #else std::cerr << "(cd test; CPPUNIT_TEST_NAME=\"" << (*failures.begin())->failedTestName() << "\" make check)\n\n"; #endif commit 6d1cc6c01d2669c2e3ee265f0ed199c52b0b9c8a Author: Michael Meeks <michael.me...@collabora.com> AuthorDate: Thu Sep 5 14:07:21 2019 +0100 Commit: Michael Meeks <michael.me...@collabora.com> CommitDate: Thu Sep 5 14:10:20 2019 +0100 Avoid using std::get_time to compile on older Linux. Change-Id: I862e5f342ea485a9b65b413ab0c1bdea4f5fbb8d diff --git a/common/Util.cpp b/common/Util.cpp index 80efed440..9df234edd 100644 --- a/common/Util.cpp +++ b/common/Util.cpp @@ -25,6 +25,7 @@ #include <sys/types.h> #include <unistd.h> #include <dirent.h> +#include <time.h> #include <atomic> #include <cassert> @@ -816,24 +817,27 @@ namespace Util std::chrono::system_clock::time_point iso8601ToTimestamp(const std::string& iso8601Time, const std::string& logName) { std::chrono::system_clock::time_point timestamp; - std::tm tm{}; - std::istringstream iss(iso8601Time); - if (!(iss >> std::get_time(&tm, "%Y-%m-%dT%H:%M:%S"))) + std::tm tm; + const char *cstr = iso8601Time.c_str(); + const char *trailing; + if (!(trailing = strptime(cstr, "%Y-%m-%dT%H:%M:%S", &tm))) { LOG_WRN(logName << " [" << iso8601Time << "] is in invalid format." << "Returning " << timestamp.time_since_epoch().count()); return timestamp; } timestamp += std::chrono::seconds(timegm(&tm)); - if (iss.eof()) + if (trailing[0] == '\0') return timestamp; double us; - if (iss.peek() != '.' || !(iss >> us)) + if (trailing[0] != '.') { LOG_WRN(logName << " [" << iso8601Time << "] is in invalid format." << ". Returning " << timestamp.time_since_epoch().count()); return timestamp; } + char *end = nullptr; + us = strtod(trailing, &end); std::size_t seconds_us = us * std::chrono::system_clock::period::den / std::chrono::system_clock::period::num; timestamp += std::chrono::system_clock::duration(seconds_us); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits