* bug#65143: dired-aux-tests and kmacro-tests failures on master
@ 2023-08-08 9:26 Mattias Engdegård
2023-08-08 9:42 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 7+ messages in thread
From: Mattias Engdegård @ 2023-08-08 9:26 UTC (permalink / raw)
To: 65143; +Cc: Po Lu
Currently (eeda9eff1a) on master:
FAILED dired-test-bug30624
FAILED kmacro-tests-step-edit-append
FAILED kmacro-tests-step-edit-replace
from dired-aux-tests and macro-tests respectively.
Most likely suspects are the recent Android merge and the unprompted delete-file changes, but I really have no idea.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#65143: dired-aux-tests and kmacro-tests failures on master
2023-08-08 9:26 bug#65143: dired-aux-tests and kmacro-tests failures on master Mattias Engdegård
@ 2023-08-08 9:42 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-08 10:32 ` Mattias Engdegård
2023-08-08 10:42 ` Mattias Engdegård
0 siblings, 2 replies; 7+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-08-08 9:42 UTC (permalink / raw)
To: Mattias Engdegård; +Cc: 65143
Mattias Engdegård <mattias.engdegard@gmail.com> writes:
> Currently (eeda9eff1a) on master:
>
> FAILED dired-test-bug30624
> FAILED kmacro-tests-step-edit-append
> FAILED kmacro-tests-step-edit-replace
>
> from dired-aux-tests and macro-tests respectively.
>
> Most likely suspects are the recent Android merge and the unprompted delete-file changes, but I really have no idea.
Does this change fix the Dired test?
I suspect the test itself is wrong; the doc string of
dired-do-create-files mentions nothing about its return value, which the
test asserts against:
(dired-mark-files-regexp "bug30624_file")
(should (dired-do-create-files 'copy 'dired-copy-file "Copy" nil))) <===============
(delete-directory target-dir 'recursive)
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 3e8b4c3c8fc..825e25c09ed 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -2480,87 +2480,88 @@ dired-do-create-files
For any other return value, TARGET is treated as a directory."
(or op1 (setq op1 operation))
- (let* ((fn-list (dired-get-marked-files nil arg nil nil t))
- (rfn-list (mapcar #'dired-make-relative fn-list))
- (dired-one-file ; fluid variable inside dired-create-files
- (and (consp fn-list) (null (cdr fn-list)) (car fn-list)))
- (target-dir (dired-dwim-target-directory))
- (default (and dired-one-file
- (not dired-dwim-target) ; Bug#25609
- (expand-file-name (file-name-nondirectory (car fn-list))
- target-dir)))
- (defaults (dired-dwim-target-defaults fn-list target-dir))
- (target (expand-file-name ; fluid variable inside dired-create-files
- (minibuffer-with-setup-hook
- (lambda ()
- (setq-local minibuffer-default-add-function nil)
- (setq minibuffer-default defaults))
- (dired-mark-read-file-name
- (format "%s %%s %s: "
- (if dired-one-file op1 operation)
- (if (memq op-symbol '(symlink hardlink))
- ;; Linking operations create links
- ;; from the prompted file name; the
- ;; other operations copy (etc) to the
- ;; prompted file name.
- "from" "to"))
- target-dir op-symbol arg rfn-list default))))
- (into-dir
- (progn
- (when
- (or
- (not dired-one-file)
- (and dired-create-destination-dirs-on-trailing-dirsep
- (directory-name-p target)))
- (dired-maybe-create-dirs target))
- (cond ((null how-to)
- ;; Allow users to change the letter case of
- ;; a directory on a case-insensitive
- ;; filesystem. If we don't test these
- ;; conditions up front, file-directory-p
- ;; below will return t on a case-insensitive
- ;; filesystem, and Emacs will try to move
- ;; foo -> foo/foo, which fails.
- (if (and (file-name-case-insensitive-p (car fn-list))
- (eq op-symbol 'move)
- dired-one-file
- (string= (downcase
- (expand-file-name (car fn-list)))
- (downcase
- (expand-file-name target)))
- (not (string=
- (file-name-nondirectory (car fn-list))
- (file-name-nondirectory target))))
- nil
- (file-directory-p target)))
- ((eq how-to t) nil)
- (t (funcall how-to target))))))
- (if (and (consp into-dir) (functionp (car into-dir)))
- (apply (car into-dir) operation rfn-list fn-list target (cdr into-dir))
- (if (not (or dired-one-file into-dir))
- (error "Marked %s: target must be a directory: %s" operation target))
- (if (and (not (file-directory-p (car fn-list)))
- (not (file-directory-p target))
- (directory-name-p target))
- (error "%s: Target directory does not exist: %s" operation target))
- ;; rename-file bombs when moving directories unless we do this:
- (or into-dir (setq target (directory-file-name target)))
- (prog1
- (dired-create-files
- file-creator operation fn-list
- (if into-dir ; target is a directory
- ;; This function uses fluid variable target when called
- ;; inside dired-create-files:
- (lambda (from)
- (expand-file-name (file-name-nondirectory from) target))
- (lambda (_from) target))
- marker-char)
- (when (or (eq dired-do-revert-buffer t)
- (and (functionp dired-do-revert-buffer)
- (funcall dired-do-revert-buffer target)))
- (dired-fun-in-all-buffers (file-name-directory target) nil
- #'revert-buffer)))))
- (dired-post-do-command))
+ (prog1
+ (let* ((fn-list (dired-get-marked-files nil arg nil nil t))
+ (rfn-list (mapcar #'dired-make-relative fn-list))
+ (dired-one-file ; fluid variable inside dired-create-files
+ (and (consp fn-list) (null (cdr fn-list)) (car fn-list)))
+ (target-dir (dired-dwim-target-directory))
+ (default (and dired-one-file
+ (not dired-dwim-target) ; Bug#25609
+ (expand-file-name (file-name-nondirectory (car fn-list))
+ target-dir)))
+ (defaults (dired-dwim-target-defaults fn-list target-dir))
+ (target (expand-file-name ; fluid variable inside dired-create-files
+ (minibuffer-with-setup-hook
+ (lambda ()
+ (setq-local minibuffer-default-add-function nil)
+ (setq minibuffer-default defaults))
+ (dired-mark-read-file-name
+ (format "%s %%s %s: "
+ (if dired-one-file op1 operation)
+ (if (memq op-symbol '(symlink hardlink))
+ ;; Linking operations create links
+ ;; from the prompted file name; the
+ ;; other operations copy (etc) to the
+ ;; prompted file name.
+ "from" "to"))
+ target-dir op-symbol arg rfn-list default))))
+ (into-dir
+ (progn
+ (when
+ (or
+ (not dired-one-file)
+ (and dired-create-destination-dirs-on-trailing-dirsep
+ (directory-name-p target)))
+ (dired-maybe-create-dirs target))
+ (cond ((null how-to)
+ ;; Allow users to change the letter case of
+ ;; a directory on a case-insensitive
+ ;; filesystem. If we don't test these
+ ;; conditions up front, file-directory-p
+ ;; below will return t on a case-insensitive
+ ;; filesystem, and Emacs will try to move
+ ;; foo -> foo/foo, which fails.
+ (if (and (file-name-case-insensitive-p (car fn-list))
+ (eq op-symbol 'move)
+ dired-one-file
+ (string= (downcase
+ (expand-file-name (car fn-list)))
+ (downcase
+ (expand-file-name target)))
+ (not (string=
+ (file-name-nondirectory (car fn-list))
+ (file-name-nondirectory target))))
+ nil
+ (file-directory-p target)))
+ ((eq how-to t) nil)
+ (t (funcall how-to target))))))
+ (if (and (consp into-dir) (functionp (car into-dir)))
+ (apply (car into-dir) operation rfn-list fn-list target (cdr into-dir))
+ (if (not (or dired-one-file into-dir))
+ (error "Marked %s: target must be a directory: %s" operation target))
+ (if (and (not (file-directory-p (car fn-list)))
+ (not (file-directory-p target))
+ (directory-name-p target))
+ (error "%s: Target directory does not exist: %s" operation target))
+ ;; rename-file bombs when moving directories unless we do this:
+ (or into-dir (setq target (directory-file-name target)))
+ (prog1
+ (dired-create-files
+ file-creator operation fn-list
+ (if into-dir ; target is a directory
+ ;; This function uses fluid variable target when called
+ ;; inside dired-create-files:
+ (lambda (from)
+ (expand-file-name (file-name-nondirectory from) target))
+ (lambda (_from) target))
+ marker-char)
+ (when (or (eq dired-do-revert-buffer t)
+ (and (functionp dired-do-revert-buffer)
+ (funcall dired-do-revert-buffer target)))
+ (dired-fun-in-all-buffers (file-name-directory target) nil
+ #'revert-buffer)))))
+ (dired-post-do-command)))
;; Read arguments for a marked-files command that wants a file name,
;; perhaps popping up the list of marked files.
^ permalink raw reply related [flat|nested] 7+ messages in thread
* bug#65143: dired-aux-tests and kmacro-tests failures on master
2023-08-08 9:42 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-08-08 10:32 ` Mattias Engdegård
2023-08-08 10:42 ` Mattias Engdegård
1 sibling, 0 replies; 7+ messages in thread
From: Mattias Engdegård @ 2023-08-08 10:32 UTC (permalink / raw)
To: Po Lu; +Cc: 65143
8 aug. 2023 kl. 11.42 skrev Po Lu <luangruo@yahoo.com>:
> Does this change fix the Dired test?
That should do it, thank you. I pushed a slightly worse-but-better variant to avoid the large `prog1`, but it's essentially the same.
> I suspect the test itself is wrong; the doc string of
> dired-do-create-files mentions nothing about its return value, which the
> test asserts against
I agree, the return value should be documented or the test use a more well-defined interface. Feel free to improve it in any way you wish, but I'm leaving it as-is now.
That leaves us with the kmacro-tests failures. Android merge fall-out?
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#65143: dired-aux-tests and kmacro-tests failures on master
2023-08-08 9:42 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-08 10:32 ` Mattias Engdegård
@ 2023-08-08 10:42 ` Mattias Engdegård
2023-09-15 12:28 ` Stefan Kangas
1 sibling, 1 reply; 7+ messages in thread
From: Mattias Engdegård @ 2023-08-08 10:42 UTC (permalink / raw)
To: Po Lu; +Cc: 65143
Let's take the opportunity to fix the fileio-tests failure as well, apparently caused by 3fb2c174d3.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#65143: dired-aux-tests and kmacro-tests failures on master
2023-08-08 10:42 ` Mattias Engdegård
@ 2023-09-15 12:28 ` Stefan Kangas
2023-09-15 12:29 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 7+ messages in thread
From: Stefan Kangas @ 2023-09-15 12:28 UTC (permalink / raw)
To: Mattias Engdegård; +Cc: Po Lu, 65143
Mattias Engdegård <mattias.engdegard@gmail.com> writes:
> That leaves us with the kmacro-tests failures. Android merge fall-out?
Mattias Engdegård <mattias.engdegard@gmail.com> writes:
> Let's take the opportunity to fix the fileio-tests failure as well,
> apparently caused by 3fb2c174d3.
Are you still seeing these failures? I'm seeing other test failures
intermittently, but not currently in these files.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#65143: dired-aux-tests and kmacro-tests failures on master
2023-09-15 12:28 ` Stefan Kangas
@ 2023-09-15 12:29 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-15 12:34 ` Stefan Kangas
0 siblings, 1 reply; 7+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-09-15 12:29 UTC (permalink / raw)
To: Stefan Kangas; +Cc: Mattias Engdegård, 65143
Stefan Kangas <stefankangas@gmail.com> writes:
> Mattias Engdegård <mattias.engdegard@gmail.com> writes:
>
>> That leaves us with the kmacro-tests failures. Android merge fall-out?
>
> Mattias Engdegård <mattias.engdegard@gmail.com> writes:
>
>> Let's take the opportunity to fix the fileio-tests failure as well,
>> apparently caused by 3fb2c174d3.
>
> Are you still seeing these failures? I'm seeing other test failures
> intermittently, but not currently in these files.
I fixed the kmacro and fileio failures.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-09-15 12:34 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-08 9:26 bug#65143: dired-aux-tests and kmacro-tests failures on master Mattias Engdegård
2023-08-08 9:42 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-08 10:32 ` Mattias Engdegård
2023-08-08 10:42 ` Mattias Engdegård
2023-09-15 12:28 ` Stefan Kangas
2023-09-15 12:29 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-15 12:34 ` Stefan Kangas
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).