bug#43353: 28.0.50; "make check" fails if there are non-ASCII characters in the Emacs path

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

bug#43353: 28.0.50; "make check" fails if there are non-ASCII characters in the Emacs path

Lars Ingebrigtsen
To reproduce, check out the Emacs tree and then say

$ mv emacs émacs

or anything else with non-ASCII characters.

Then build Emacs as normal (this should work fine), and then say

$ make check

You should then see a ream of errors like

  ELC      src/regex-emacs-tests.elc
>>Error occurred processing src/marker-tests.el: File is missing (("Doing chmod" "No such file or directory" "/home/larsi/src/emacs/g\303\203\302\263o/test/src/marker-tests.elcMbSh7c"))

This is because test/Makefile puts a LC_ALL=C thing into the command
line.  (Which can be overridden by TEST_LOCALE (which will allow the
test .elc files to be built, but then a bunch of tests will fail anyway,
because a bunch of tests assume that we're in the C locale, apparently.)

In GNU Emacs 28.0.50 (build 58, x86_64-pc-linux-gnu, GTK+ Version 3.24.22, cairo version 1.16.0)
 of 2020-09-12 built on xo
Repository revision: 699e40caf634cea11350c59fc64ce5693d378cb4
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: Debian GNU/Linux bullseye/sid


--
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Reply | Threaded
Open this post in threaded view
|

bug#43353: 28.0.50; "make check" fails if there are non-ASCII characters in the Emacs path

Glenn Morris-3
Lars Ingebrigtsen wrote:

> This is because test/Makefile puts a LC_ALL=C thing into the command
> line.

The LC_ALL=C should be removed, as it was from the main lisp Makefile in:
git show d0065ff1244 lisp/Makefile.in
(Ref https://debbugs.gnu.org/15260#82)

> (Which can be overridden by TEST_LOCALE

(Presumably just an attempt to generalize a feature that should never
have been there.)

> but then a bunch of tests will fail anyway, because a bunch of tests
> assume that we're in the C locale, apparently.)

Most failures were due to text-quoting-style.
For me there are now just two failures left:

1) lisp/vc/diff-mode-tests.log

This failure is due a deficiency of GNU diff, as described in
https://unix.stackexchange.com/questions/603249/how-to-make-diff-print-non-ascii-characters-in-file-names

It means that the file names returned by diff-hunk-file-names cannot be
found, so diff-syntax-fontify-hunk does nothing.

Perhaps diff-hunk-file-names should decode the diff header to work
around the GNU diff issue.

2) tramp-archive-test02-file-name-dissect
due to some extra "%25" in host as compared to url-hexify-string.

Perhaps there are more failures in check-expensive, but life's too short.



Reply | Threaded
Open this post in threaded view
|

bug#43353: 28.0.50; "make check" fails if there are non-ASCII characters in the Emacs path

Glenn Morris-3

AFAICS the sole remaining failure is tramp-archive-test02-file-name-dissect,
where host != (url-hexify-string (concat "file://"tramp-archive-test-file-archive))
This fails because:
host = tramp-archive-gvfs-host =
  (url-hexify-string (tramp-gvfs-url-file-name ... ))
  where tramp-gvfs-url-file-name also does a url-hexify-string
So host contains the result of two applications of url-hexify-string,
meaning that a literal % ends up replaced by a %25.
So comparing this for equality with the result of a single
url-hexify-string fails.



Reply | Threaded
Open this post in threaded view
|

bug#43353: 28.0.50; "make check" fails if there are non-ASCII characters in the Emacs path

Michael Albinus
Glenn Morris <[hidden email]> writes:

Hi Glenn,

> AFAICS the sole remaining failure is tramp-archive-test02-file-name-dissect,
> where host != (url-hexify-string (concat
> "file://"tramp-archive-test-file-archive))
> This fails because:
> host = tramp-archive-gvfs-host =
>   (url-hexify-string (tramp-gvfs-url-file-name ... ))
>   where tramp-gvfs-url-file-name also does a url-hexify-string
> So host contains the result of two applications of url-hexify-string,
> meaning that a literal % ends up replaced by a %25.
> So comparing this for equality with the result of a single
> url-hexify-string fails.

Thanks for the analysis. Fortunately, there's no error in Tramp itself;
it was just an error in the test case. Should be fixed now.

Best regards, Michael.



Reply | Threaded
Open this post in threaded view
|

bug#43353: 28.0.50; "make check" fails if there are non-ASCII characters in the Emacs path

Lars Ingebrigtsen
Michael Albinus <[hidden email]> writes:

> Thanks for the analysis. Fortunately, there's no error in Tramp itself;
> it was just an error in the test case. Should be fixed now.

Yup, and with that (and Glenn's fixes), "make check" works fine with
non-ASCII in the Emacs build path here, too.

--
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no