- system("$cmd 2>&1 | $RealBin/filter-subunit.pl --prefix \"$name.\"");
- my $ret = $?;
- if ($ret == -1) {
- Subunit::end_testsuite($name, "error", "Unable to run $cmd: $!");
- return 0;
- } elsif ($ret & 127) {
+ open(RESULTS, "$cmd 2>&1|");
+ my $statistics = {
+ SUITES_FAIL => 0,
+
+ TESTS_UNEXPECTED_OK => 0,
+ TESTS_EXPECTED_OK => 0,
+ TESTS_UNEXPECTED_FAIL => 0,
+ TESTS_EXPECTED_FAIL => 0,
+ TESTS_ERROR => 0,
+ TESTS_SKIP => 0,
+ };
+
+ my $msg_ops = new Subunit::Filter("$name\.", []);
+
+ parse_results($msg_ops, $statistics, *RESULTS);
+
+ my $ret = 0;
+
+ unless (close(RESULTS)) {
+ if ($!) {
+ Subunit::end_testsuite($name, "error", "Unable to run $cmd: $!");
+ return 0;
+ } else {
+ $ret = $?;
+ }
+ }
+
+ if ($ret & 127) {