[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: emacs-wgrep is marked for autoremoval from testing



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


Reply to: