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'."
next prev parent 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.