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. 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