On 20/08/2018 10:33, Michael Felt wrote: > On 17/08/2018 17:15, Ingo Schwarze wrote: >> Hi Darren, >> >> Darren Tucker wrote on Fri, Aug 17, 2018 at 07:16:03AM -0700: >>> On 13 August 2018 at 15:06, Val Baranov <val.baranov@xxxxxxxx> wrote: >>>> test_utf8: ........................ >>>> regress/unittests/utf8/tests.c:48 test #25 "c_esc" >>>> ASSERT_INT_EQ(len, wantlen) failed: >>>> len = -1 >>>> wantlen = 5 >>> This boils down to meaning OpenSSH's smnprintf call failed for the >>> string "\033x" instead of returning the expected escaped version >>> "\\033x". The code is in utf8.c but I am not sure why it failed. >> Actually, it is *supposed* to fail unless the locale is either >> UTF-8 or the POSIX (ASCII) locale, because '\033' is not a >> printable character and attempting to escape invalid stuff >> is unsafe in arbitrary locales. >> >>> What's your locale set to? > OK. Double checked. > AIX defaults: > environment: > LANG=en_US > root@x064:[/usr/lib/nls/loc]ls -l /usr/lib/nls/loc/en_US > lrwxrwxrwx 1 bin bin 32 Aug 02 06:40 > /usr/lib/nls/loc/en_US -> /usr/lib/nls/loc/en_US.ISO8859-1 > > And, after installing the UTF-8 fileset ( > /usr/lib/nls/loc/en_US.UTF-8 bos.loc.utf.EN_US File) > > The test is attempted, and fails. > > Question #1 - how can I run only this test? Then it is easier to look > for potential resolutions. > >> It doesn't matter on OpenBSD, but maybe you should consider setting >> LC_CTYPE=en_US.UTF-8 by default in TEST_ENV in the portable version >> of the test suite? Of course, it would do no harm on OpenBSD either. > While I wait for the answer - I'll just run the tests prefixed with > export LC_CTYPE=en_US.UTF-8 - maybe that is all that is needed. Test fails. Use smitty to change primary "cultural", "language" and "keyboard" Primary CULTURAL convention UTF-8 English (United States) [EN_US] + Primary LANGUAGE translation UTF-8 English (UTF-8) [en.UTF-8] + Primary KEYBOARD UTF-8 English(POSIX) KBD ID 103P [EN_US] + initially fails, as these are also required: Error: The selected settings for cultural convention, language, and keyboard require the installation of additional filesets that are not currently installed. Select an installation device that contains the following filesets: bos.msg.EN_US.net.tcp.client bos.msg.EN_US.rte After that is added, and set: root@x064:[/data/prj/openbsd/mindrot/openssh-7.8.0.20]grep LANG /etc/environment LANG=EN_US root@x064:[/data/prj/openbsd/mindrot/openssh-7.8.0.20]grep LC /etc/environment LC__FASTMSG=true LC_MESSAGES=C@lft root@x064:[/usr/lib/nls/loc]ls -l EN_US lrwxrwxrwx 1 bin bin 28 Aug 03 12:28 EN_US -> /usr/lib/nls/loc/EN_US.UTF-8 unset LC_CTYPE export LANG=EN_US Still same error sequence as above. regress/unittests/utf8/tests.c:48 test #25 "c_esc" ASSERT_INT_EQ(len, wantlen) failed: len = -1 wantlen = 5 make: 1254-059 The signal code from the last command is 6. (back to question #2: en_US is what I would expect to be enough to satisfy "posix". traditionally EN_US has been to mean iso8559-15 while en_US has been iso8559-1. Not clear on what the key differences are. So, what is needed for OpenBSD definition of "POSIX"? > > Reminds me of Question #2: how is your definition of POSIX different > from ISO8859-1 (and/or ISO8859-15, the "UK" or EN_US variant)? >> If you worry that some target system might not have a en_US.UTF-8 >> locale installed, you can look at >> >> http://mandoc.bsd.lv/cgi-bin/cvsweb/configure?rev=HEAD >> >> for a way to autodetect a suitable UTF-8 locale - look for UTF8_LOCALE >> in that script. >> >> But that may be overkill for OpenSSH. Just recklessly forcing >> LC_CTYPE=en_US.UTF-8 may be good enough for OpenSSH's purposes. >> If the target system doesn't provide it, setlocale(3) will fall >> back to POSIX, which should be good enough for the tests. >> >> Yours, >> Ingo >> _______________________________________________ >> openssh-unix-dev mailing list >> openssh-unix-dev@xxxxxxxxxxx >> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev > > > _______________________________________________ > openssh-unix-dev mailing list > openssh-unix-dev@xxxxxxxxxxx > https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev > _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@xxxxxxxxxxx https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev