I'm still slowly working through things. The good news is that the
recent smoke you did passed something I was afraid it wouldn't, and
would have been hard to debug. But we've done something in the meantime
to fix that nasty earlier bug.
The smoke reports have flaws. I've talked to the maintainer of
Test::Smoke. He wants you to configure the smoker with verbosity level
of 2. I'm not sure how to do that, but it looks like you can specify it
in runsmoke.pl or configsmoke.pl. He wants to see the resultant files
«mktest.out», «mktest.rpt» and the «.log»
The latest branch has the latest blead, and things rebase so it won't
merge. It additionally tests Pod::Simple from cpan. I think I've fixed
most of the bugs in that module, and want to see before its impending
next release is done.
Concerning LC_ALL. It overrides all the other locale categories
http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/setloc.htm
It can be set by the environment or an application. In the case of the
test t/run/locale.t the test tries to set it to an invalid locale. Some
shells are smart enough to know that it's invalid, and thus refuse to do
so. We try to code around these by testing if the shell actually set
the variables we told it to. In your case, when we look at the value,
it sometimes hasn't been changed, and sometimes has been changed to
something completely different from what we set it to, namely it is
showing as 'perlio' or 'stdio', which is what the PERLIO environment
variable is set to. This is pretty weird. As I suspected, when you ran
it individually, outside Test::Smoke, it worked (although all the extra
debugging info makes it appear to fail). I don't know what to do here.
It may be a ksh bug. I don't know why your display shows LC_ALL unset
vs. the others being set. Do you have some initialization code for your
shell that sets the others? The point of LC_ALL is you can use it,
setting one thing instead of having to many.