-
Notifications
You must be signed in to change notification settings - Fork 601
Closed
Labels
Description
I built using:
./Configure -des -Dusedevel -Duseithreads -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing"
The verbose output is a little hard to read but...
t/op/magic ... 1..208
ok 1 - *SIG appears to be defined at the outset
ok 2 - *^OPEN appears to be defined at the outset
ok 3 - *^TAINT appears to be defined at the outset
...
ok 99 - Assigning $^I does not clobber $^O
ok 100 - test $^P = 0
ok 101 - test $^P = 1
ok 102 - Set process name through argv[0] ( 136098 pts/0 S+ 0:00 Good Morning, Dave )
ok 103 - Set process name through prctl() ( 136098 pts/0 S+ 0:00 Good Morning, D)
ok 104 - compare $0 to UTF8-flagged
ok 105 - compare $0 to non-UTF8-flagged
# Failed test 106 - /proc cmdline shows as expected (compare to UTF8-flagged) at op/magic.t line 480
# got "?\000 "
not ok 106 - /proc cmdline shows as expected (compare to UTF8-flagged)
# expected "?"
# Failed test 107 - /proc cmdline shows as expected (compare to non-UTF8-flagged) at op/magic.t line 482
# got "?\000 "
# expected "?"
# Failed test 111 - .. and /proc cmdline shows that at op/magic.t line 504
# got "hahaĀhoho\000 "
# expected "hahaĀhoho"
FAILED at test 106
Failed 1 test out of 1, 0.00% okay.
op/magic.t
### Since not all tests were successful, you may want to run some of
### them individually and examine any diagnostic messages they produce.
### See the INSTALL document's section on "make test".
### You may have to set your dynamic library search path,
### LD_LIBRARY_PATH, to point to the build directory:
### setenv LD_LIBRARY_PATH `pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
### LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd t; ./perl harness
### export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
### for csh-style shells, like tcsh; or for traditional/modern
### Bourne-style shells, like bash, ksh, and zsh, respectively.
Elapsed: 3 sec
u=0.01 s=0.00 cu=0.18 cs=0.18 scripts=1 tests=208
I have bisected the failure to:
2d3b3561a39bb17fd6003fb262f52b3bc800770e is the first bad commit
commit 2d3b3561a39bb17fd6003fb262f52b3bc800770e
Author: Felipe Gasper <felipe@felipegasper.com>
Date: Fri Jan 7 14:28:39 2022 -0500
Properly handle UTF8-flagged strings when assigning to $0.
Issue #19331: Use of SvPV_const and SvPV_force in S_set_dollarzero()
wrote the PV internals directly to argv, which causes an improper UTF-8
encode if the SV is UTF8-flagged/upgraded.
This fixes that doing a downgrade prior to those SvPV* calls. If the
string contains wide characters (and thus cannot be downgraded) a
warning is thrown; this mirrors preexisting behavior with %ENV, print,
and other output channels that convert Perl SVs to bytes.
The relevant documentation is also updated.
mg.c | 10 +++++++
pod/perldelta.pod | 7 +++++
pod/perlvar.pod | 4 +++
t/op/magic.t | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-