Use python datetime for calculating durations, not time.time()

This commit is contained in:
baldurk
2021-05-04 14:12:03 +01:00
parent c7b7d3dbcc
commit efd2a50a3a
12 changed files with 22 additions and 51 deletions
+3 -2
View File
@@ -1,5 +1,6 @@
import os
import signal
import datetime
import time
import renderdoc as rd
from . import util
@@ -69,12 +70,12 @@ class TargetControl():
if self.control is None:
return
start_time = time.time()
start_time = datetime.datetime.now(datetime.timezone.utc)
while keep_running(self):
msg: rd.TargetControlMessage = self.control.ReceiveMessage(None)
if time.time() - start_time > self._timeout:
if (datetime.datetime.now(datetime.timezone.utc) - start_time).total_seconds() > self._timeout:
log.error("Timed out")
break
+6 -9
View File
@@ -7,6 +7,7 @@ import platform
import subprocess
import threading
import queue
import datetime
import time
import renderdoc as rd
from . import util
@@ -189,7 +190,7 @@ def fetch_tests():
def run_tests(test_include: str, test_exclude: str, in_process: bool, slow_tests: bool, debugger: bool):
start_time = time.time()
start_time = datetime.datetime.now(datetime.timezone.utc)
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
@@ -360,20 +361,16 @@ def run_tests(test_include: str, test_exclude: str, in_process: bool, slow_tests
log.end_test(name)
duration = time.time() - start_time
duration = datetime.datetime.now(datetime.timezone.utc) - start_time
if len(failedcases) > 0:
logfile = rd.GetLogFile()
if os.path.exists(logfile):
log.inline_file('RenderDoc log', logfile)
hours = int(duration / 3600)
minutes = int(duration / 60) % 60
seconds = round(duration % 60)
log.comment("total={} fail={} skip={} time={}".format(len(testcases), len(failedcases), len(skippedcases), duration))
log.header("Tests complete summary: {} passed out of {} run from {} total in {}:{:02}:{:02}"
.format(len(runcases)-len(failedcases), len(runcases), len(testcases), hours, minutes, seconds))
log.comment("total={} fail={} skip={} time={}".format(len(testcases), len(failedcases), len(skippedcases), int(duration.total_seconds())))
log.header("Tests complete summary: {} passed out of {} run from {} total in {}"
.format(len(runcases)-len(failedcases), len(runcases), len(testcases), duration))
if len(failedcases) > 0:
log.print("Failed tests:")
for testclass in failedcases:
@@ -1,8 +1,5 @@
import renderdoc as rd
import rdtest
from typing import List, Tuple
import time
import os
# Not a direct test, re-used by API-specific tests
-3
View File
@@ -1,8 +1,5 @@
import renderdoc as rd
import rdtest
from typing import List, Tuple
import time
import os
# Not a real test, re-used by API-specific tests
class Draw_Zoo(rdtest.TestCase):
-3
View File
@@ -1,8 +1,5 @@
import renderdoc as rd
import rdtest
from typing import List, Tuple
import time
import os
# Not a real test, re-used by API-specific tests
class Mesh_Zoo():
-3
View File
@@ -1,8 +1,5 @@
import renderdoc as rd
import rdtest
from typing import List, Tuple
import time
import os
# Not a direct test, re-used by API-specific tests
+7 -6
View File
@@ -2,7 +2,7 @@ import os
import traceback
import copy
import re
import time
import datetime
import renderdoc as rd
from . import util
from . import analyse
@@ -156,6 +156,9 @@ class TestCase:
self.controller: rd.ReplayController = None
self._variables = []
def get_time(self):
return datetime.datetime.now(datetime.timezone.utc)
def get_ref_path(self, name: str, extra: bool = False):
if extra:
return util.get_data_extra_path(os.path.join(self.__class__.__name__, name))
@@ -454,12 +457,10 @@ class TestCase:
self.controller.Shutdown()
def invoketest(self, debugMode):
start_time = time.time()
start_time = self.get_time()
self.run()
duration = time.time() - start_time
minutes = int(duration / 60) % 60
seconds = round(duration % 60)
log.print("Test ran in {:02}:{:02}".format(minutes, seconds))
duration = self.get_time() - start_time
log.print("Test ran in {}".format(duration))
self.debugMode = debugMode
def get_first_draw(self):
@@ -1,8 +1,4 @@
import renderdoc as rd
import rdtest
from typing import List, Tuple
import time
import os
class D3D11_Texture_Zoo(rdtest.TestCase):
@@ -1,8 +1,4 @@
import renderdoc as rd
import rdtest
from typing import List, Tuple
import time
import os
class D3D12_Texture_Zoo(rdtest.TestCase):
-4
View File
@@ -1,8 +1,4 @@
import renderdoc as rd
import rdtest
from typing import List, Tuple
import time
import os
class GL_Texture_Zoo(rdtest.TestCase):
@@ -1,6 +1,6 @@
import renderdoc as rd
import os
import time
import datetime
import rdtest
@@ -15,24 +15,24 @@ class VK_Large_Descriptor_Sets(rdtest.TestCase):
rdtest.log.print("Loading capture")
memory_before: int = rd.GetCurrentProcessMemoryUsage()
start_time = time.time()
start_time = self.get_time()
self.controller = rdtest.open_capture(self.capture_filename, opts=self.get_replay_options())
duration = time.time() - start_time
duration = self.get_time() - start_time
memory_after: int = rd.GetCurrentProcessMemoryUsage()
memory_increase = memory_after - memory_before
rdtest.log.print("Loaded capture in {:02} seconds, consuming {} bytes of memory".format(duration, memory_increase))
rdtest.log.print("Loaded capture in {} seconds, consuming {} bytes of memory".format(duration, memory_increase))
if memory_increase > 2000*1000*1000:
raise rdtest.TestFailureException("Memory usage is too high".format(duration))
raise rdtest.TestFailureException("Memory increase {} is too high".format(memory_increase))
else:
rdtest.log.success("Memory usage is OK")
if rd.IsReleaseBuild():
if duration >= 2.5:
if duration.total_seconds() >= 2.5:
raise rdtest.TestFailureException("Time to load is too high")
rdtest.log.success("Time to load is OK")
else:
-4
View File
@@ -1,8 +1,4 @@
import renderdoc as rd
import rdtest
from typing import List, Tuple
import time
import os
class VK_Texture_Zoo(rdtest.TestCase):