tests: try to fix some early crashes on windows x64 69/18169/2
Clément DAVID [Wed, 18 May 2016 08:59:49 +0000 (10:59 +0200)]
 * relax timeout to 15min
 * ExitProcess(258) for explicit exit code on timeout

Change-Id: Ie2acded637be35c64a0d8238c3030baadd831363

scilab/modules/development_tools/macros/test_run.sci
scilab/modules/windows_tools/src/cpp/SignalManagement.cpp

index a52747c..8c7e623 100644 (file)
@@ -836,7 +836,7 @@ function status = test_single(_module, _testPath, _testName)
 
     SCI_ARGS = " -nb -quit "
     if ~_module.longtime then
-        SCI_ARGS = SCI_ARGS + "--timeout 5m "
+        SCI_ARGS = SCI_ARGS + "--timeout 15m "
     end
 
     // Build final command
index c79a02f..4222085 100644 (file)
@@ -21,7 +21,13 @@ extern "C"
 #include "SignalManagement.h"\r
 }\r
 \r
-static VOID CALLBACK kill_process_callback(PTP_CALLBACK_INSTANCE Instance, PVOID Context, PTP_TIMER Timer)\r{\r    std::cerr << "Watchdog timer expired: Scilab killed" << std::endl;\r    ExitProcess(1);\r}\r\r
+static VOID CALLBACK kill_process_callback(PTP_CALLBACK_INSTANCE Instance, PVOID Context, PTP_TIMER Timer)\r
+{\r
+    std::cerr << "Watchdog timer expired: Scilab killed" << std::endl;\r
+       // use the System Error code: wait operation timed out\r
+    ExitProcess(258);\r
+}\r
+\r
 void timeout_process_after(int timeoutDelay)\r
 {\r
     auto timerid = CreateThreadpoolTimer(kill_process_callback, nullptr, nullptr);\r
@@ -29,8 +35,9 @@ void timeout_process_after(int timeoutDelay)
     FILETIME FileDueTime;\r
     ULARGE_INTEGER ulDueTime;\r
 \r
-    // Set the timer to fire in the delay in seconds\r
-    ulDueTime.QuadPart = (ULONGLONG) - (timeoutDelay * 10 * 1000 * 1000);\r
+    // Set the timer to fire in the delay in seconds, relative to the current time\r
+       long long in_seconds = - 10 * 1000 * 1000;\r
+    ulDueTime.QuadPart = timeoutDelay * in_seconds;\r
     FileDueTime.dwHighDateTime = ulDueTime.HighPart;\r
     FileDueTime.dwLowDateTime  = ulDueTime.LowPart;\r
 \r