From efd2a50a3a53c1c850734a575829286290da7a52 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 4 May 2021 14:12:03 +0100 Subject: [PATCH] Use python datetime for calculating durations, not time.time() --- util/test/rdtest/capture.py | 5 +++-- util/test/rdtest/runner.py | 15 ++++++--------- util/test/rdtest/shared/Buffer_Truncation.py | 3 --- util/test/rdtest/shared/Draw_Zoo.py | 3 --- util/test/rdtest/shared/Mesh_Zoo.py | 3 --- util/test/rdtest/shared/Overlay_Test.py | 3 --- util/test/rdtest/testcase.py | 13 +++++++------ util/test/tests/D3D11/D3D11_Texture_Zoo.py | 4 ---- util/test/tests/D3D12/D3D12_Texture_Zoo.py | 4 ---- util/test/tests/GL/GL_Texture_Zoo.py | 4 ---- .../test/tests/Vulkan/VK_Large_Descriptor_Sets.py | 12 ++++++------ util/test/tests/Vulkan/VK_Texture_Zoo.py | 4 ---- 12 files changed, 22 insertions(+), 51 deletions(-) diff --git a/util/test/rdtest/capture.py b/util/test/rdtest/capture.py index 171299050..f125c8869 100644 --- a/util/test/rdtest/capture.py +++ b/util/test/rdtest/capture.py @@ -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 diff --git a/util/test/rdtest/runner.py b/util/test/rdtest/runner.py index 075215de8..30e844add 100644 --- a/util/test/rdtest/runner.py +++ b/util/test/rdtest/runner.py @@ -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: diff --git a/util/test/rdtest/shared/Buffer_Truncation.py b/util/test/rdtest/shared/Buffer_Truncation.py index 290b1df02..160f0cdb5 100644 --- a/util/test/rdtest/shared/Buffer_Truncation.py +++ b/util/test/rdtest/shared/Buffer_Truncation.py @@ -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 diff --git a/util/test/rdtest/shared/Draw_Zoo.py b/util/test/rdtest/shared/Draw_Zoo.py index 37abe043c..297f80ae2 100644 --- a/util/test/rdtest/shared/Draw_Zoo.py +++ b/util/test/rdtest/shared/Draw_Zoo.py @@ -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): diff --git a/util/test/rdtest/shared/Mesh_Zoo.py b/util/test/rdtest/shared/Mesh_Zoo.py index ec26fd551..b7f05b50e 100644 --- a/util/test/rdtest/shared/Mesh_Zoo.py +++ b/util/test/rdtest/shared/Mesh_Zoo.py @@ -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(): diff --git a/util/test/rdtest/shared/Overlay_Test.py b/util/test/rdtest/shared/Overlay_Test.py index bf37eb697..6d872f37a 100644 --- a/util/test/rdtest/shared/Overlay_Test.py +++ b/util/test/rdtest/shared/Overlay_Test.py @@ -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 diff --git a/util/test/rdtest/testcase.py b/util/test/rdtest/testcase.py index b2efb9740..25c5505c2 100644 --- a/util/test/rdtest/testcase.py +++ b/util/test/rdtest/testcase.py @@ -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): diff --git a/util/test/tests/D3D11/D3D11_Texture_Zoo.py b/util/test/tests/D3D11/D3D11_Texture_Zoo.py index b0818a76a..b8703f8fd 100644 --- a/util/test/tests/D3D11/D3D11_Texture_Zoo.py +++ b/util/test/tests/D3D11/D3D11_Texture_Zoo.py @@ -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): diff --git a/util/test/tests/D3D12/D3D12_Texture_Zoo.py b/util/test/tests/D3D12/D3D12_Texture_Zoo.py index d124737db..d45de1e72 100644 --- a/util/test/tests/D3D12/D3D12_Texture_Zoo.py +++ b/util/test/tests/D3D12/D3D12_Texture_Zoo.py @@ -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): diff --git a/util/test/tests/GL/GL_Texture_Zoo.py b/util/test/tests/GL/GL_Texture_Zoo.py index ecd399ad8..6e8ed663e 100644 --- a/util/test/tests/GL/GL_Texture_Zoo.py +++ b/util/test/tests/GL/GL_Texture_Zoo.py @@ -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): diff --git a/util/test/tests/Vulkan/VK_Large_Descriptor_Sets.py b/util/test/tests/Vulkan/VK_Large_Descriptor_Sets.py index 20ecfbd6b..de00bc5ea 100644 --- a/util/test/tests/Vulkan/VK_Large_Descriptor_Sets.py +++ b/util/test/tests/Vulkan/VK_Large_Descriptor_Sets.py @@ -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: diff --git a/util/test/tests/Vulkan/VK_Texture_Zoo.py b/util/test/tests/Vulkan/VK_Texture_Zoo.py index a056335ee..0d7942b77 100644 --- a/util/test/tests/Vulkan/VK_Texture_Zoo.py +++ b/util/test/tests/Vulkan/VK_Texture_Zoo.py @@ -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):