diff unix.py @ 123:90c002c960cb

Fixed CPU time display on UNIX Previously, the total CPU time spent by the testee on all test cases up to and including the current one was displayed.
author Oleg Oshmyan <chortos@inbox.lv>
date Sun, 24 Apr 2011 19:28:40 +0100
parents 0b265fe9c81f
children 19c42a3cd962
line wrap: on
line diff
--- a/unix.py	Sun Apr 24 16:48:29 2011 +0100
+++ b/unix.py	Sun Apr 24 19:28:40 2011 +0100
@@ -210,15 +210,16 @@
 		if (case.maxwalltime and
 		    case.time_stopped - case.time_started > case.maxwalltime):
 			raise testcases.WallTimeLimitExceeded
-		if new_rusage and (case.maxcputime or not case.maxwalltime):
-			case.time_started = cpustart
-			case.time_stopped = new_rusage.ru_utime + new_rusage.ru_stime
-			case.time_limit_string = case.cpu_time_limit_string
-		if case.maxcputime and new_rusage:
-			oldtime = old_rusage.ru_utime + old_rusage.ru_stime
-			newtime = new_rusage.ru_utime + new_rusage.ru_stime
-			if newtime - oldtime - cpustart > case.maxcputime:
-				raise testcases.CPUTimeLimitExceeded
+		if new_rusage:
+			time_started = old_rusage.ru_utime + old_rusage.ru_stime + cpustart
+			time_stopped = new_rusage.ru_utime + new_rusage.ru_stime
+			if case.maxcputime or not case.maxwalltime:
+				case.time_started = time_started
+				case.time_stopped = time_stopped
+				case.time_limit_string = case.cpu_time_limit_string
+				if (case.maxcputime and
+				    time_stopped - time_started > case.maxcputime):
+					raise testcases.CPUTimeLimitExceeded
 		if case.maxmemory:
 			if sys.platform != 'darwin':
 				maxrss = case.maxmemory * 1024