From 9c6b56dc65cdd9256fbe04a7baf4f085db1c04dd Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Tue, 8 Aug 2017 14:45:29 +1000 Subject: [PATCH] (perl #131646) make the test less fragile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The original pattern "UXp>" with the $_ that causes the failure, 5, so we end up packing exp(5) or 148.... with U packs: - U (148), producing C2 94, with the UTF8 flag set - X - back up a byte, - p> - write the address of PL_sv_no's PV in big-ending The final p> will typically overwrite the 94 with a zero on 64-bit systems, but with the smaller address space of 32-bit systems that high-byte is more likely to be a valid continuation byte, causing the comparison to fail. Instead just pack a zero byte. Signed-off-by: Petr Písař --- t/lib/warnings/utf8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/lib/warnings/utf8 b/t/lib/warnings/utf8 index dfc58c1..a9a6388 100644 --- a/t/lib/warnings/utf8 +++ b/t/lib/warnings/utf8 @@ -779,7 +779,7 @@ BEGIN{ } no warnings; use warnings 'utf8'; -for(uc 0..t){0~~pack"UXp>",exp} +for(uc 0..t){0~~pack"UXc",exp} EXPECT OPTIONS regex Malformed UTF-8 character: \\x([[:xdigit:]]{2})\\x([[:xdigit:]]{2}) \(unexpected non-continuation byte 0x\2, immediately after start byte 0x\1; need 2 bytes, got 1\) in smart match at - line 9. -- 2.9.4