--- Begin Message ---
Subject: |
29.0.60; fns-tests-collate-strings fails on Cygwin |
Date: |
Fri, 24 Mar 2023 10:52:45 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 |
The test in the subject fails on Cygwin as follows:
Test fns-tests-collate-strings condition:
(ert-test-failed
((should-error
(string-collate-equalp "xyzzy" "xyzzy" "en_DE.UTF-8"))
:form
(string-collate-equalp "xyzzy" "xyzzy" "en_DE.UTF-8")
:value t :fail-reason "did not signal an error"))
The reason is that en_DE.UTF-8 is actually a valid locale on Cygwin.
[Cygwin gets its locale information from Windows. The latter supports
the RFC 5646 locale "en-DE", which is called "English (Germany)" in the
"Region" settings.]
The following trivial patch fixes the problem:
--- a/test/src/fns-tests.el
+++ b/test/src/fns-tests.el
@@ -254,7 +254,7 @@ fns-tests-collate-strings
(should (string-collate-equalp "xyzzy" "XYZZY" nil t))
;; Locale must be valid.
- (should-error (string-collate-equalp "xyzzy" "xyzzy" "en_DE.UTF-8")))
+ (should-error (string-collate-equalp "xyzzy" "xyzzy" "en_XY.UTF-8")))
;; There must be a check for valid codepoints. (Check not
implemented yet)
; (should-error
Is this OK for the emacs-29 branch?
[Note: The test will still fail on current Cygwin after this patch; but
that's because of a bug in Cygwin, which has been fixed in the
development sources for Cygwin 3.5.]
Ken
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#62420: 29.0.60; fns-tests-collate-strings fails on Cygwin |
Date: |
Sat, 25 Mar 2023 10:27:51 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 |
On 3/25/2023 8:24 AM, Eli Zaretskii wrote:
Date: Fri, 24 Mar 2023 10:52:45 -0400
From: Ken Brown <kbrown@cornell.edu>
Is this OK for the emacs-29 branch?
Yes, thanks.
[Note: The test will still fail on current Cygwin after this patch; but
that's because of a bug in Cygwin, which has been fixed in the
development sources for Cygwin 3.5.]
Maybe mention this in comments?
Done.
Bonus points for making it an
expected failure for Cygwin < 3.5, assuming the version of Cygwin
could be obtained by the test code.
I don't know how to get the version in Lisp. I only know how to get it
in C, using uname. If someone can tell me how to get it in Lisp, I'll
try to earn the bonus points.
Closing.
Ken
--- End Message ---