Actually, I think I nailed the bug. Somehow having weird either LANG or LC_ALL or both set up breaks things. Note that Estonian alphabet isn't in the same order as English, so having those variables set breaks other things as well (like configure scripts).
$ LC_ALL= LANG= prove --verbose t/op/spawnw.t t/op/spawnw....1..7 ok 1 - exit code: 0 ok 2 - exit code: 123 ok 3 - exit code: 3 ok 4 - exit code: 0 ok 5 - exit code: 123 ok 6 - exit code: 3 ok 7 - grow argv buffer ok All tests successful. Files=1, Tests=7, 0 wallclock secs ( 0.17 cusr + 0.05 csys = 0.22 CPU) $ LANG= prove --verbose t/op/spawnw.t perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = "et_EE.UTF-8", LANG = "" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). t/op/spawnw....perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = "et_EE.UTF-8", LANG = "" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = "et_EE.UTF-8", LANG = "" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). 1..7 # Failed test 'exit code: 0' # in t/op/spawnw.t at line 49. not ok 1 - exit code: 0 # got: 'perl: warning: Setting locale failed. # perl: warning: Please check that your locale settings: # LANGUAGE = (unset), # LC_ALL = "et_EE.UTF-8", # LANG = "" # are supported and installed on your system. # perl: warning: Falling back to the standard locale ("C"). # return code: 0 # ' # expected: 'return code: 0 # ' not ok 2 - exit code: 123 # Failed test 'exit code: 123' # in t/op/spawnw.t at line 62. # got: 'perl: warning: Setting locale failed. # perl: warning: Please check that your locale settings: # LANGUAGE = (unset), # LC_ALL = "et_EE.UTF-8", # LANG = "" # are supported and installed on your system. # perl: warning: Falling back to the standard locale ("C"). # return code: 123 # ' # expected: 'return code: 123 # ' not ok 3 - exit code: 3 # Failed test 'exit code: 3' # in t/op/spawnw.t at line 75. # got: 'perl: warning: Setting locale failed. # perl: warning: Please check that your locale settings: # LANGUAGE = (unset), # LC_ALL = "et_EE.UTF-8", # LANG = "" # are supported and installed on your system. # perl: warning: Falling back to the standard locale ("C"). # return code: 3 # ' # expected: 'return code: 3 # ' not ok 4 - exit code: 0 # Failed test 'exit code: 0' # in t/op/spawnw.t at line 90. # got: 'perl: warning: Setting locale failed. # perl: warning: Please check that your locale settings: # LANGUAGE = (unset), # LC_ALL = "et_EE.UTF-8", # LANG = "" # are supported and installed on your system. # perl: warning: Falling back to the standard locale ("C"). # return code: 0 # ' # expected: 'return code: 0 # ' not ok 5 - exit code: 123 # Failed test 'exit code: 123' # in t/op/spawnw.t at line 107. # got: 'perl: warning: Setting locale failed. # perl: warning: Please check that your locale settings: # LANGUAGE = (unset), # LC_ALL = "et_EE.UTF-8", # LANG = "" # are supported and installed on your system. # perl: warning: Falling back to the standard locale ("C"). # return code: 123 # ' # expected: 'return code: 123 # ' not ok 6 - exit code: 3 # Failed test 'exit code: 3' # in t/op/spawnw.t at line 124. # got: 'perl: warning: Setting locale failed. # perl: warning: Please check that your locale settings: # LANGUAGE = (unset), # LC_ALL = "et_EE.UTF-8", # LANG = "" # are supported and installed on your system. # perl: warning: Falling back to the standard locale ("C"). # return code: 3 # ' # expected: 'return code: 3 # ' not ok 7 - grow argv buffer # Failed test 'grow argv buffer' # in t/op/spawnw.t at line 141. # got: 'perl: warning: Setting locale failed. # perl: warning: Please check that your locale settings: # LANGUAGE = (unset), # LC_ALL = "et_EE.UTF-8", # LANG = "" # are supported and installed on your system. # perl: warning: Falling back to the standard locale ("C"). # return code: 10 # ' # expected: 'return code: 10 # ' # Looks like you failed 7 tests of 7. dubious Test returned status 7 (wstat 1792, 0x700) DIED. FAILED tests 1-7 Failed 7/7 tests, 0.00% okay Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/op/spawnw.t 7 1792 7 7 100.00% 1-7