[profiler] Fix test reporting success even though a test failed
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Wed, 27 Jan 2016 19:15:44 +0000 (20:15 +0100)
committerAlexander Köplinger <alex.koeplinger@outlook.com>
Wed, 27 Jan 2016 19:17:18 +0000 (20:17 +0100)
commit93ed825dcb38f07bcef77caa529edf3b186dabdd
tree5d6e17ab7cb339db7494f74192d2c3a1971bdb24
parent39d172e19037a01730e9b992d269c2bea2249838
[profiler] Fix test reporting success even though a test failed

I noticed this in https://jenkins.mono-project.com/job/test-mono-pull-request-armhf/1715/ which reported success in the "profiler" test step,
even though the step actually reported errors:

```
MONO_PATH=/media/ssd/jenkins/workspace/test-mono-pull-request-armhf/mcs/class/lib/net_4_x perl ./ptestrunner.pl ../..
Checking test-alloc.exe with report ...
Checking test-busy.exe with report ...
Checking test-busy.exe with report,sample ...
Error: Missing thread Finalizer.
Error: Missing thread Main.
Error: Wrong loaded images 2.
Error: Not enough compiled method.
Error: Not enough compiled code.
Error: Missing thread BusyHelper.
Total errors: 6
Checking test-monitor.exe with report ...
Checking test-excleave.exe with report ...
Checking test-heapshot.exe with report,heapshot ...
Checking test-heapshot.exe with heapshot,output=-traces.mlpd ...
Checking test-traces.exe with output=-traces.mlpd ...
Checking test-traces.exe with nocalls,output=-traces.mlpd ...
make[1]: Leaving directory `/media/ssd/jenkins/workspace/test-mono-pull-request-armhf/mono/profiler'
make: Leaving directory `/media/ssd/jenkins/workspace/test-mono-pull-request-armhf/mono/profiler'
++ bc
+++ date +%s
++ echo 1453874768 - 1453874741
+ echo -e '*** end(27): profiler: \e[42mPassed\e[0m'
*** end(27): profiler: Passed
```

The culprit is that ptestrunner.pl checks whether $total_errors is non-zero to determin the process exit code.
This is wrong, as $total_errors is cleared before each test so unless the last test fails the exit code would always be zero.

Introduced a new $global_errors variable which is only incremented and never cleared to fix this.
mono/profiler/ptestrunner.pl