Subject: bug#44317: [PATCH] cperl-mode: Make timeout tests more robust

From: [email-masked] (Harald Jörg)
Date: Thu, 29 Oct 2020 22:09:29 +0100

One of the tests in cperl-mode-tests.el starts an external Emacs process
under timeout to check for an endless loop.  It turns out that the
timeout of 1 sec is rather short for slower machines.  Thanks to recent
ERT which now reports the run time in batch tests, I saw that it takes
about 0.7 seconds on my machine, so I increased the timeout to 2
seconds.

I also flagged the test as "expensive" and skip it under older Emacs
versions (I run tests for Emacs version 26.1 and above).
>From b169038b5d619907f2513de944e4515bf7524d53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Harald=20J=C3=B6rg?= <[email-masked]>
Date: Thu, 29 Oct 2020 22:06:56 +0100
Subject: [PATCH] cperl-mode: Make timeout test more robust

* test/lisp/progmodes/cperl-mode-tests.el
(cperl-mode-test-bug-10483): Increase the timeout to 2 seconds
and mark the test as expensive.  Also, suppress it for Emacs
versions below 28, where the test times out though the function
works quite fine in manual tests.
---
 test/lisp/progmodes/cperl-mode-tests.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/test/lisp/progmodes/cperl-mode-tests.el b/test/lisp/progmodes/cperl-mode-tests.el
index e67678cf6b..9b486ae2e2 100644
--- a/test/lisp/progmodes/cperl-mode-tests.el
+++ b/test/lisp/progmodes/cperl-mode-tests.el
@@ -108,8 +108,10 @@ cperl-mode-test-bug-10483
 without a statement terminator on the same line does not loop
 forever.  The test starts an asynchronous Emacs batch process
 under timeout control."
+  :tags '(:expensive-test)
   (interactive)
   (skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; FIXME times out
+  (skip-unless (not (< emacs-major-version 28))) ; times out in older Emacsen
   (let* ((emacs (concat invocation-directory invocation-name))
          (test-function 'cperl-mode-test--run-bug-10483)
          (test-function-name (symbol-name test-function))
@@ -118,7 +120,7 @@ cperl-mode-test-bug-10483
          (process-connection-type nil)
          runner)
     (with-temp-buffer
-      (with-timeout (1
+      (with-timeout (2
                      (delete-process runner)
                      (setq ran-out-of-time t))
         (setq runner (start-process "speedy"
-- 
2.20.1