On 2024-01-06, at 18:16:31 -0800, Xiyue Deng wrote:
> Jeremy Sowden <jeremy@azazel.net> writes:
> > On 2024-01-03, at 22:08:32 -0800, Xiyue Deng wrote:
> >> Debian testing autoremoval watch <noreply@release.debian.org> writes:
> >> > emacs-wgrep 3.0.0-1 is marked for autoremoval from testing on 2024-01-18
> >> >
> >> > It is affected by these RC bugs:
> >> > 1057559: emacs-wgrep: FTBFS: Error: error ("Test âwgrep-normalâ redefined")
> >> > https://bugs.debian.org/1057559
> >> >
> >> > This mail is generated by:
> >> > https://salsa.debian.org/release-team/release-tools/-/blob/master/mailer/mail_autoremovals.pl
> >> >
> >> > Autoremoval data is generated by:
> >> > https://salsa.debian.org/qa/udd/-/blob/master/udd/testing_autoremovals_gatherer.pl
> >>
> >> FYI I have prepared a fix on mentors[1]. Comments and sponsors welcome!
> >>
> >> [1] https://mentors.debian.net/package/emacs-wgrep/
> >
> > I tried building the package with gbp-buildpackage in Sid and two of the
> > tests failed. The same things happened when I manually ran:
> >
> > fakeroot debian/rules binary
> >
> > in a Sid chroot. It is the two BOM tests that fail. For example:
> >
> > $ schroot -c sid -- emacs -batch -l wgrep.el -l wgrep-test-helper.el -l wgrep-test.el -eval '(ert-run-tests-batch-and-exit "wgrep-bom-with-unibyte")'
> > Loading /etc/emacs/site-start.d/00debian.el (source)...
> > Loading /etc/emacs/site-start.d/50autoconf.el (source)...
> > Running 1 tests (2024-01-06 19:35:50+0000, selector `"wgrep-bom-with-unibyte"')
> >
> > Grep finished with matches found
> > Press C-x C-s when finished or C-c C-k to abort changes.
> > Writing 1 files, 0 files are left...
> > There is an unapplied change. (0 changed)
> > No buffer has been saved.
> > Test wgrep-bom-with-unibyte backtrace:
> > ert-fail(((should (equal "ABCD\nb\n" (wgrep-test-helper--get-content
> > (if (unwind-protect (setq value-75 (apply fn-73 args-74)) (setq form
> > (let (form-description-77) (if (unwind-protect (setq value-75 (apply
> > (let ((value-75 'ert-form-evaluation-aborted-76)) (let (form-descrip
> > (let* ((fn-73 #'equal) (args-74 (condition-case err (let ((signal-ho
> > (lambda (file) (wgrep-test-helper--grep (concat "grep -nH -e 'a' -A
> > funcall((lambda (file) (wgrep-test-helper--grep (concat "grep -nH -e
> > (unwind-protect (funcall body-fn file) (wgrep-test-helper--cleanup-f
> > (let ((file (concat (make-temp-name "test-data") ".txt"))) (cond ((s
> > (let ((default-directory (file-name-as-directory test-directory))) (
> > (let ((test-directory (expand-file-name "test-work" default-director
> > wgrep-test-helper-fixture(("a\nb\n" utf-8-with-signature) (lambda (f
> > (progn (wgrep-test-helper-fixture '("a\nb\n" utf-8-with-signature) #
> > (let ((wgrep-change-readonly-file nil) (wgrep-auto-save-buffer nil))
> > (lambda nil (let ((wgrep-change-readonly-file nil) (wgrep-auto-save-
> > ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
> > ert-run-test(#s(ert-test :name wgrep-bom-with-unibyte :documentation
> > ert-run-or-rerun-test(#s(ert--stats :selector "wgrep-bom-with-unibyt
> > ert-run-tests("wgrep-bom-with-unibyte" #f(compiled-function (event-t
> > ert-run-tests-batch("wgrep-bom-with-unibyte")
> > ert-run-tests-batch-and-exit("wgrep-bom-with-unibyte")
> > command-line-1(("-l" "wgrep.el" "-l" "wgrep-test-helper.el" "-l" "wg
> > command-line()
> > normal-top-level()
> > Test wgrep-bom-with-unibyte condition:
> > (ert-test-failed
> > ((should
> > (equal "ABCD\nb\n"
> > (wgrep-test-helper--get-contents file)))
> > :form
> > (equal "ABCD\nb\n" "a\nb\n")
> > :value nil :explanation
> > (arrays-of-different-length 7 4 "ABCD\nb\n" "a\nb\n" first-mismatch-at 0)))
> > FAILED 1/1 wgrep-bom-with-unibyte (0.743585 sec) at wgrep-test.el:77
> >
> > Ran 1 tests, 0 results as expected, 1 unexpected (2024-01-06 19:35:51+0000, 0.908359 sec)
> >
> > 1 unexpected results:
> > FAILED wgrep-bom-with-unibyte
> >
> > Changing the test to remove the BOM:
> >
> > --- a/wgrep-test.el
> > +++ b/wgrep-test.el
> > @@ -77,7 +77,7 @@
> > (ert-deftest wgrep-bom-with-unibyte ()
> > :tags '(wgrep)
> > (wgrep-test-helper--default
> > - (wgrep-test-helper-fixture '("a\nb\n" utf-8-with-signature)
> > + (wgrep-test-helper-fixture '("a\nb\n" utf-8)
> > (lambda (file)
> > (wgrep-test-helper--grep (concat "grep -nH -e 'a' -A 2 " file))
> > (wgrep-change-to-wgrep-mode)
> >
> > causes it to pass.
> >
> > I am trying to work out what's going wrong, but I suspect that your
> > Elisp skills (and familiarity with the package) are greater than mine
> > and you may get there faster. :)
>
> Thanks for the report. However, I cannot reproduce this with my
> sbuild or sid docker environment. Also as the test is about BOM I
> don't think disabling BOM is the right solution.
Agreed. I was merely observing that the problem seemed directly related
to the presence of the BOM -- removing it caused the tests to pass.
> Can you show me a bit more of your system and package info (with
> dependencies)?
The tests were failing when I ran either:
schroot -c sid -- fakeroot debian/rules clean binary
which runs in an up-to-date Unstable schroot LVM snapshot chroot, or:
gbp buildpackage --git-pbuilder
which runs in an up-to-date Unstable cowbuilder chroot. When I tried an
Unstable sbuild chroot that I have on the same host, the tests passed.
They had also passed when I ran the tests in the host system, which is
running Testing. I created a fresh Unstable cowbuilder chroot, but
using that didn't help. Eventually, I tracked the problem down to
locale settings in the environment. In the schroot chroot, `LANG` is
not set; in the cowbuilder chroot it is set to `C`; whereas in the
sbuild chroot, which inherits it from my environment in the host system,
it is `en_GB.UTF-8`.
Compare:
$ schroot -c sid -- env LANG=C.UTF-8 emacs -batch -l wgrep.el \
> -l wgrep-test-helper.el -l wgrep-test.el \
> -eval '(ert-run-tests-batch-and-exit "wgrep-bom-with-unibyte")'
Loading /etc/emacs/site-start.d/00debian.el (source)...
Loading /etc/emacs/site-start.d/50autoconf.el (source)...
Running 1 tests (2024-01-07 14:07:46+0000, selector ‘"wgrep-bom-with-unibyte"’)
Grep finished with matches found
Press C-x C-s when finished or C-c C-k to abort changes.
Writing 1 files, 0 files are left...
Successfully finished. (1 changed)
Buffer has been saved.
passed 1/1 wgrep-bom-with-unibyte (0.911896 sec)
Ran 1 tests, 1 results as expected, 0 unexpected (2024-01-07 14:07:46+0000, 0.912041 sec)
and:
$ schroot -c sid -- env LANG=C emacs -batch -l wgrep.el \
> -l wgrep-test-helper.el -l wgrep-test.el \
> -eval '(ert-run-tests-batch-and-exit "wgrep-bom-with-unibyte")'
Loading /etc/emacs/site-start.d/00debian.el (source)...
Loading /etc/emacs/site-start.d/50autoconf.el (source)...
Running 1 tests (2024-01-07 14:10:21+0000, selector `"wgrep-bom-with-unibyte"')
Grep finished with matches found
Press C-x C-s when finished or C-c C-k to abort changes.
Writing 1 files, 0 files are left...
There is an unapplied change. (0 changed)
No buffer has been saved.
Test wgrep-bom-with-unibyte backtrace:
[...]
Test wgrep-bom-with-unibyte condition:
(ert-test-failed
((should
(equal "ABCD\nb\n"
(wgrep-test-helper--get-contents file)))
:form
(equal "ABCD\nb\n" "a\nb\n")
:value nil :explanation
(arrays-of-different-length 7 4 "ABCD\nb\n" "a\nb\n" first-mismatch-at 0)))
FAILED 1/1 wgrep-bom-with-unibyte (0.943495 sec) at wgrep-test.el:77
Ran 1 tests, 0 results as expected, 1 unexpected (2024-01-07 14:10:22+0000, 1.124888 sec)
1 unexpected results:
FAILED wgrep-bom-with-unibyte
Not sure what the moral of this tale is yet, but in any case, the
problem is unrelated to your packaging (and I see the same behaviour
using the .orig tar-ball).
J.
Attachment:
signature.asc
Description: PGP signature