Subject: Re: bug#73205: 30.0.91; Failed test: uniquify-project-transform at lisp/uniquify-tests.el:130

From: Eli Zaretskii <[email-masked]>
Date: Fri, 13 Sep 2024 09:25:57 +0300

> From: "N. Jackson" <[email-masked]>
> Date: Thu, 12 Sep 2024 17:42:36 +0000
> 
> 
> I'm not certain if this test failure is a bug in Emacs or a problem
> with my build.

It's a bug in the test and/or its expectations.

> After building Emacs 30.0.91 from the tarball with
> 
>   $ ./configure
>   $ make -j
> 
> and then running
> 
>   $ make test
> 
> I get the following test results:
> 
>   SUMMARY OF TEST RESULTS
>   -----------------------
>   Files examined: 519
>   Ran 7898 tests, 7661 results as expected, 1 unexpected, 236 skipped
>   1 files contained unexpected results:
>     lisp/uniquify-tests.log
> 
> The details of the failed test are:
> 
>     ELC+ELN  lisp/uniquify-tests.elc
>     GEN      lisp/uniquify-tests.log
>   Running 7 tests (2024-09-12 12:30:54-0400, selector `(not (or (tag :expensive-test) (tag :unstable)))')
>      passed  1/7  uniquify-basic (0.049446 sec)
>      passed  2/7  uniquify-dirs (0.052217 sec)
>   Test uniquify-project-transform backtrace:
>     signal(ert-test-failed (((should (equal (mapcar #'buffer-name bufs) 
>     ert-fail(((should (equal (mapcar #'buffer-name bufs) '("README<other
>     #f(compiled-function () #<bytecode 0x1832166822f8ac0c>)()
>     #f(compiled-function () #<bytecode -0xd7b405b6433f139>)()
>     handler-bind-1(#f(compiled-function () #<bytecode -0xd7b405b6433f139
>     ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
>     ert-run-test(#s(ert-test :name uniquify-project-transform :documenta
>     ert-run-or-rerun-test(#s(ert--stats :selector (not (or ... ...)) :te
>     ert-run-tests((not (or (tag :expensive-test) (tag :unstable))) #f(co
>     ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable)))
>     ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
>     eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
>     command-line-1(("-L" ":." "-l" "ert" "--eval" "(setq treesit-extra-l
>     command-line()
>     normal-top-level()
>   Test uniquify-project-transform condition:
>       (ert-test-failed
>        ((should (equal (mapcar ... bufs) '("README<other>" "README<bar>")))
>         :form
>         (equal ("README<other>" "README<emacs-30.0.91>")
>                ("README<other>" "README<bar>"))
>         :value nil :explanation
>         (list-elt 1
>                   (arrays-of-different-length 21 11 "README<emacs-30.0.91>"
>                                               "README<bar>"
>                                               first-mismatch-at 7))))
>      FAILED  3/7  uniquify-project-transform (0.042755 sec) at lisp/uniquify-tests.el:130
>      passed  4/7  uniquify-rename-to-dir (0.000854 sec)
>      passed  5/7  uniquify-separator-ignored (0.007538 sec)
>      passed  6/7  uniquify-separator-style-reverse (0.007087 sec)
>      passed  7/7  uniquify-space-prefix (0.007681 sec)
> 
>   Ran 7 tests, 6 results as expected, 1 unexpected (2024-09-12 12:30:55-0400, 0.310196 sec)
> 
>   1 unexpected results:
>      FAILED  uniquify-project-transform

Yes, confirmed.  This test succeeds in the Git tree, but fails in the
tree created by unpacking the pretest tarball.

Spencer and Mattias, could you please fix the test so that it works in
both cases?  It seems to rely on some assumptions that are false in
the source tree of a release tarball.

Thanks.