all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jim Porter <jporterbugs@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Shell quoting in Eshell (was: eshell-batch-file)
Date: Sat, 15 Jun 2024 11:36:57 -0700	[thread overview]
Message-ID: <8826aea7-75dd-c147-3dd1-93489038a1ac@gmail.com> (raw)
In-Reply-To: <86ed8yv951.fsf@gnu.org>

On 6/15/2024 2:38 AM, Eli Zaretskii wrote:
> I get this failure:
[snip]
>    Test esh-proc-test/kill-pipeline condition:
>        (ert-test-failed
>         ((should
> 	 (string-match-p (rx ...)
> 			 (buffer-substring-no-properties output-start ...)))
> 	:form
> 	(string-match-p "\\(?:\\(?:interrupt\\|killed\\(?:: 9\\)?\\)\n\\)"
> 			"")
> 	:value nil))
>       FAILED   4/23  esh-proc-test/kill-pipeline (0.131174 sec) at lisp/eshell/esh-proc-tests.el:283
> 
> Why do we expect to see "killed" or "interrupt" in this case?

Eshell intends to print the exit message from the process sentinel of 
the tail process here (unless the message starts with "finished" or 
"exited"). After thinking this over, I realized that the test failure 
you encountered was actually a race condition: Eshell tries to kill all 
the processes in the pipeline, which -- if Eshell is fast enough -- 
sends a signal to the tail process, making us print the exit message. 
However, if Eshell is slow, the tail process might exit on its own 
before we can signal it, leading to no message.

I've now fixed this test so that we check that there are zero or one 
exit messages (the old code was too lenient in some regards).

I think the only remaining thing to do here is to figure out why you 
needed to change 'eshell-command-result--equal'. I imagine this is 
because I made a mistake somewhere with case normalization (my guess is 
in the globbing tests). Hopefully it's just a problem with the tests, 
but it could be that there's a bug hiding in Eshell proper.

Could you try the diff below and report back the failures when you get a 
chance?


--------------------------------------------------


diff --git a/test/lisp/eshell/eshell-tests-helpers.el 
b/test/lisp/eshell/eshell-tests-helpers.el
index acbe57a7283..bfd829c95e9 100644
--- a/test/lisp/eshell/eshell-tests-helpers.el
+++ b/test/lisp/eshell/eshell-tests-helpers.el
@@ -179,12 +179,7 @@ eshell-test-command-result

  (defun eshell-command-result--equal (_command actual expected)
    "Compare the ACTUAL result of a COMMAND with its EXPECTED value."
-  (or (equal actual expected)
-      ;; Compare case-isensitively on case-insensitive filesystems.
-      (and (memq system-type '(windows-nt ms-dos))
-           (stringp actual)
-           (stringp expected)
-           (string-equal-ignore-case actual expected))))
+  (equal actual expected))

  (defun eshell-command-result--equal-explainer (command actual expected)
    "Explain the result of `eshell-command-result--equal'."




  reply	other threads:[~2024-06-15 18:36 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-09  6:11 eshell-batch-file Eli Zaretskii
2024-06-09 18:55 ` eshell-batch-file Jim Porter
2024-06-09 19:06   ` eshell-batch-file Eli Zaretskii
2024-06-09 19:15   ` Shell quoting in Eshell (was: eshell-batch-file) Eli Zaretskii
2024-06-09 20:07     ` Jim Porter
2024-06-09 22:37       ` Jim Porter
2024-06-15  9:38         ` Eli Zaretskii
2024-06-15 18:36           ` Jim Porter [this message]
2024-06-15 19:10             ` Eli Zaretskii
2024-06-15 20:06               ` Jim Porter
2024-06-16  5:21                 ` Eli Zaretskii
2024-06-16  5:57                   ` Jim Porter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8826aea7-75dd-c147-3dd1-93489038a1ac@gmail.com \
    --to=jporterbugs@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.