Rob - apologies for the late reply.
A shot in the dark - does it make any difference if you remove undef *Test::Harness::Switches; from that command ?
Removing undef *Test::Harness::Switches; from the command results in much the same - see error below:
>perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "test_harness(0
+, 'blib\lib',
'blib\arch')" t\00-report-prereqs.t
t\00-report-prereqs.t .. Can't dup STDOUT: Bad file descriptor at C:/
+perl-5.20.3/lib/Test/Builder.pm line 1952.
Compilation failed in require at C:/perl-5.20.3/lib/Test/Builder/Modul
+e.pm line 5.
BEGIN failed--compilation aborted at C:/perl-5.20.3/lib/Test/Builder/M
+odule.pm line 5.
Compilation failed in require at C:/perl-5.20.3/lib/Test/More.pm line
+23.
BEGIN failed--compilation aborted at C:/perl-5.20.3/lib/Test/More.pm l
+ine 23.
Compilation failed in require at t\00-report-prereqs.t line 8.
BEGIN failed--compilation aborted at t\00-report-prereqs.t line 8.
t\00-report-prereqs.t .. Dubious, test returned 9 (wstat 2304, 0x900)
No subtests run
Test Summary Report
-------------------
t\00-report-prereqs.t (Wstat: 2304 Tests: 0 Failed: 0)
Non-zero exit status: 9
Parse errors: No plan found in TAP output
Files=1, Tests=0, 1 wallclock secs ( 0.05 usr + 0.05 sys = 0.09 CPU
+)
Result: FAIL
Failed 1/1 test programs. 0/0 subtests failed.
System 2 - where the problem isn't evident
- Yes - both systems run the same command when make test is run
- Yes - both systems run the same version of Test::Harness
Test::Harness Version info on both systems
System 1 (Win7 machine running perl-5.20.3 compiled with VC2015 RC2)
>perl -MTest::Harness -e "print $Test::Harness::VERSION"
3.30
System 2 (Win10 machine running perl-5.20.3 compiled with VC2015 RC2)
>perl -MTest::Harness -e "print $Test::Harness::VERSION"
3.30
It's quite bizarre and I'm out of ideas as to why my STDOUT file descriptor is evidently corrupt on the Win7 machine.