GNU bug report logs - #78730
31.0.50; Some eglot test failures

Previous Next

Package: emacs;

Reported by: Michael Albinus <michael.albinus <at> gmx.de>

Date: Mon, 9 Jun 2025 07:58:01 UTC

Severity: normal

Found in version 31.0.50

To reply to this bug, email your comments to 78730 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to joaotavora <at> gmail.com, bug-gnu-emacs <at> gnu.org:
bug#78730; Package emacs. (Mon, 09 Jun 2025 07:58:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Michael Albinus <michael.albinus <at> gmx.de>:
New bug report received and forwarded. Copy sent to joaotavora <at> gmail.com, bug-gnu-emacs <at> gnu.org. (Mon, 09 Jun 2025 07:58:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; Some eglot test failures
Date: Mon, 09 Jun 2025 09:56:59 +0200
[Message part 1 (text/plain, inline)]
Hi,

The regression tests for eglot on emba.gnu.org have been adapted
recently. They run now in a Debian Trixie environment. New language
servers being installed are rust-analyzer, typescript-language-server, and
vscode-json-languageserver. See <https://emba.gnu.org/emacs/emacs/-/jobs/104841>.

As a consequence, previously skipped tests have been applied from
eglot-tests.el. Some of them fail, see
<https://emba.gnu.org/emacs/emacs/-/jobs/104844>. The failed tests are

--8<---------------cut here---------------start------------->8---
   FAILED  eglot-test-javascript-basic  "Timed out waiting for:\n((string= method \"textDocument/publishDiagnostics\"))\n"
   FAILED  eglot-test-project-wide-diagnostics-typescript  "Timed out waiting for:\n((string= method \"textDocument/publishDiagnostics\"))\n"
   FAILED  eglot-test-rust-completion-exit-function  ((should (equal (if (bound-and-true-p yas-minor-mode) "fn test() -> i32 { let v: usize = 1; v.count_ones().1234567890;" "fn test() -> i32 { let v: usize = 1; v.count_ones.1234567890;") (buffer-string))) :form (equal "fn test() -> i32 { let v: usize = 1; v.count_ones.1234567890;" #("fn test() -> i32 { let v: usize = 1; v.count_on1234.1234567890;" 0 63 (fontified nil))) :value nil :explanation (arrays-of-different-length 61 63 "fn test() -> i32 { let v: usize = 1; v.count_ones.1234567890;" #("fn test() -> i32 { let v: usize = 1; v.count_on1234.1234567890;" 0 63 (fontified nil)) first-mismatch-at 47))
--8<---------------cut here---------------end--------------->8---

See also eglot-tests.log:

[eglot-tests(1).log (text/plain, attachment)]
[Message part 3 (text/plain, inline)]
Best regards, Michael.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78730; Package emacs. (Mon, 09 Jun 2025 09:29:01 GMT) Full text and rfc822 format available.

Message #8 received at 78730 <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 78730 <at> debbugs.gnu.org
Subject: Re: bug#78730: 31.0.50; Some eglot test failures
Date: Mon, 09 Jun 2025 10:29:13 +0100
Michael Albinus <michael.albinus <at> gmx.de> writes:

> Hi,
>
> The regression tests for eglot on emba.gnu.org have been adapted
> recently. They run now in a Debian Trixie environment. New language
> servers being installed are rust-analyzer, typescript-language-server, and
> vscode-json-languageserver. See <https://emba.gnu.org/emacs/emacs/-/jobs/104841>.

We'll that's good news!

> As a consequence, previously skipped tests have been applied from
> eglot-tests.el. Some of them fail, see
> <https://emba.gnu.org/emacs/emacs/-/jobs/104844>. The failed tests are
>
>    FAILED  eglot-test-javascript-basic  "Timed out waiting for:\n((string= method \"textDocument/publishDiagnostics\"))\n"
>    FAILED  eglot-test-project-wide-diagnostics-typescript  "Timed out waiting for:\n((string= method \"textDocument/publishDiagnostics\"))\n"
>    FAILED  eglot-test-rust-completion-exit-function  ((should (equal (if (bound-and-true-p yas-minor-mode) "fn test() -> i32 { let v: usize = 1; v.count_ones().1234567890;" "fn test() -> i32 { let v: usize = 1; v.count_ones.1234567890;") (buffer-string))) :form (equal "fn test() -> i32 { let v: usize = 1; v.count_ones.1234567890;" #("fn test() -> i32 { let v: usize = 1; v.count_on1234.1234567890;" 0 63 (fontified nil))) :value nil :explanation (arrays-of-different-length 61 63 "fn test() -> i32 { let v: usize = 1; v.count_ones.1234567890;" #("fn test() -> i32 { let v: usize = 1; v.count_on1234.1234567890;" 0 63 (fontified nil)) first-mismatch-at 47))
>

I understand.  Well the tests pass locally here, a 2018 Thinkpad 480,
fresh master.  I'm on Arch linux so I'm running close to the bleeding
edge of these language servers, package-system installed.

Ran 55 tests, 49 results as expected, 0 unexpected, 6 skipped
(2025-06-09 10:19:40+0100, 34.989411 sec)

6 skipped results:
  SKIPPED  eglot-test-eclipse-connect
  SKIPPED  eglot-test-json-basic
  SKIPPED  eglot-test-path-to-uri-windows
  SKIPPED  eglot-test-snippet-completions
  SKIPPED  eglot-test-snippet-completions-with-company
  SKIPPED  eglot-test-zig-insert-replace-completion

But it's not a huge suprise it happens on virtual machines or containers
with less-than-sane schedulers and system clocks.  Is that the case with
EMBA or is this running on bare metal?  Is there an HEYIMRUNNINGONEMBA
variable?  If there is, I think we could skip those tests for when
truish.

João




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78730; Package emacs. (Mon, 09 Jun 2025 09:46:02 GMT) Full text and rfc822 format available.

Message #11 received at 78730 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: João Távora <joaotavora <at> gmail.com>
Cc: 78730 <at> debbugs.gnu.org
Subject: Re: bug#78730: 31.0.50; Some eglot test failures
Date: Mon, 09 Jun 2025 11:45:44 +0200
João Távora <joaotavora <at> gmail.com> writes:

Hi João,

> I understand.  Well the tests pass locally here, a 2018 Thinkpad 480,
> fresh master.  I'm on Arch linux so I'm running close to the bleeding
> edge of these language servers, package-system installed.

typescript-language-server and vscode-json-languageserver are installed
via npm, so they should be recent. Unfortunately, they aren't offered as
Debian packages, still in trixie, so I decided for this.

See test/infra/Dockerfile.emba:

--8<---------------cut here---------------start------------->8---
RUN npm install -g typescript-language-server typescript
RUN npm install -g vscode-json-languageserver
--8<---------------cut here---------------end--------------->8---

> But it's not a huge suprise it happens on virtual machines or containers
> with less-than-sane schedulers and system clocks.  Is that the case with
> EMBA or is this running on bare metal?

Containers. See admin/notes/emba, it explains how you could reproduce
the docker environment locally.

> Is there an HEYIMRUNNINGONEMBA variable?  If there is, I think we
> could skip those tests for when truish.

(skip-when (getenv "EMACS_EMBA_CI")) shall do. However, not all eglot
tests fail due to a timeout.

> João

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78730; Package emacs. (Mon, 09 Jun 2025 10:31:01 GMT) Full text and rfc822 format available.

Message #14 received at 78730 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: João Távora <joaotavora <at> gmail.com>
Cc: 78730 <at> debbugs.gnu.org
Subject: Re: bug#78730: 31.0.50; Some eglot test failures
Date: Mon, 09 Jun 2025 12:30:35 +0200
[Message part 1 (text/plain, inline)]
Michael Albinus <michael.albinus <at> gmx.de> writes:

Hi João,

> (skip-when (getenv "EMACS_EMBA_CI")) shall do. However, not all eglot
> tests fail due to a timeout.

What about this?

[Message part 2 (text/x-patch, inline)]
diff --git a/test/lisp/progmodes/eglot-tests.el b/test/lisp/progmodes/eglot-tests.el
index 2b6e09a4d16..2b98da4134b 100644
--- a/test/lisp/progmodes/eglot-tests.el
+++ b/test/lisp/progmodes/eglot-tests.el
@@ -185,7 +185,9 @@ eglot--call-with-timeout
                 (funcall fn)))
       (cancel-timer timer)
       (when (eq retval timed-out)
-        (error "%s" (concat "Timed out " message))))))
+        (if (getenv "EMACS_EMBA_CI")
+            (ert-skip (concat "Timed out " message))
+          (error "%s" (concat "Timed out " message)))))))
 
 (defun eglot--find-file-noselect (file &optional noerror)
   (unless (or noerror
[Message part 3 (text/plain, inline)]
>> João

Best regards, Michael.

This bug report was last modified 26 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.