From 909842fff98983bff8b61c37b11a99d89dcc4d36 Mon Sep 17 00:00:00 2001 From: Zack Galbreath Date: Mon, 17 Oct 2016 11:24:01 -0400 Subject: CTest: report time spent after matching output When using the TIMEOUT_AFTER_MATCH test property, only report the time spent by the test after the matching output was found. --- Help/prop_test/TIMEOUT_AFTER_MATCH.rst | 4 +++- Source/CTest/cmProcess.cxx | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Help/prop_test/TIMEOUT_AFTER_MATCH.rst b/Help/prop_test/TIMEOUT_AFTER_MATCH.rst index a191a9c..d607992 100644 --- a/Help/prop_test/TIMEOUT_AFTER_MATCH.rst +++ b/Help/prop_test/TIMEOUT_AFTER_MATCH.rst @@ -22,7 +22,9 @@ When the test outputs a line that matches ``regex`` its start time is reset to the current time and its timeout duration is changed to ``seconds``. Prior to this, the timeout duration is determined by the :prop_test:`TIMEOUT` property or the :variable:`CTEST_TEST_TIMEOUT` -variable if either of these are set. +variable if either of these are set. Because the test's start time is +reset, its execution time will not include any time that was spent +waiting for the matching output. :prop_test:`TIMEOUT_AFTER_MATCH` is useful for avoiding spurious timeouts when your test must wait for some system resource to become diff --git a/Source/CTest/cmProcess.cxx b/Source/CTest/cmProcess.cxx index cf3c7ac..a24fe21 100644 --- a/Source/CTest/cmProcess.cxx +++ b/Source/CTest/cmProcess.cxx @@ -225,6 +225,7 @@ void cmProcess::ChangeTimeout(double t) void cmProcess::ResetStartTime() { cmsysProcess_ResetStartTime(this->Process); + this->StartTime = cmSystemTools::GetTime(); } int cmProcess::GetExitException() -- cgit v0.12