PR/60369 CVS commit: [netbsd-11] src/tests/lib/libc/locale
"Martin Husemann" <[email protected]>
| Newsgroups | gmane.os.netbsd.bugs |
|---|---|
| Message-ID | <[email protected]> |
The following reply was made to PR standards/60369; it has been noted by GNATS. From: "Martin Husemann" <[email protected]> To: [email protected] Cc: Subject: PR/60369 CVS commit: [netbsd-11] src/tests/lib/libc/locale Date: Fri, 3 Jul 2026 17:49:19 +0000 Module Name: src Committed By: martin Date: Fri Jul 3 17:49:19 UTC 2026 Modified Files: src/tests/lib/libc/locale [netbsd-11]: t_mbrtowc.c t_mbstowcs.c Log Message: Additonally pull up following revision(s) (requested by wiz in ticket #339): tests/lib/libc/locale/t_mbstowcs.c: revision 1.4 tests/lib/libc/locale/t_mbstowcs.c: revision 1.5 tests/lib/libc/locale/t_mbrtowc.c: revision 1.3 tests/lib/libc/locale/t_mbrtowc.c: revision 1.4 tests/lib/libc/locale/t_mbrtowc.c: revision 1.5 t_mbrtowc: Mark UTF-8 test cases xfail. mbrtowc previously failed to reject invalid (legacy 5/6-byte) UTF-8, so it accepted this test case. Now it rejects this test case, because the test case itself is broken. Need to split this test up into: 1. correctly decoding the valid inputs 2. correctly rejecting the invalid inputs But for now marking the test case xfail is an adequate approximation to the more complicated truth. PR lib/60369: mbrtowc, mbrlen have wrong return value for some invalid byte sequences: Invalid sequence t_mbstowcs: Mark UTF-8 test cases xfail. mbrtowc fails to reject invalid (legacy 5/6-byte) UTF-8. Need to split this test up into: 1. correctly decoding the valid inputs 2. correctly rejecting the invalid inputs Also don't stop at the first failing test in t_mbrtowc; keep going to test everything, for better diagnostics at the end in the test report. As with t_mbrtowc, this should be split into multiple parts, TBD. PR lib/60369: mbrtowc, mbrlen have wrong return value for some invalid byte sequences: Invalid sequence PR lib/60369 Update tests to match modern UTF-8 This just removes test cases using invalid (by current standards) UTF-8 sequences (in one case the test is modified to switch it from invalid to valid) The XFAIL that was added is removed. ("removed" in all of this means hashifd away). There is, in this change, no attempt to fix either of the other very valid concerns - actually testing invalid input to ensure it is rejected (would need to be a whole new test case, the way they are currently structured is not condusive to that - the input is simply known to be valid), nor having the test continue to try the remaining cases if an invalid result is obtained rather than simply abandoning ship at the first opportunity. Also note that none of this really has anything whatever to do with the PR, which had nothing at all to do with what is valid UTF-8 and what is not, but merely when something that is to be treated as invalid is detetected, that MUST be reported, the (libc, not test) code must not go on to examine further bytes and end up reporting that more are needed (even if more would be needed were the input valid). That is, when both conditions exist, the error is reported, not the insufficient data. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.2.20.1 src/tests/lib/libc/locale/t_mbrtowc.c cvs rdiff -u -r1.3 -r1.3.4.1 src/tests/lib/libc/locale/t_mbstowcs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.