123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- """
- Copyright (c) Contributors to the Open 3D Engine Project.
- For complete copyright and license terms please see the LICENSE at the root of this distribution.
- SPDX-License-Identifier: Apache-2.0 OR MIT
- """
- import time
- ENTER_MSG = ("Entered game mode", "Failed to enter game mode")
- EXIT_MSG = ("Exited game mode", "Couldn't exit game mode")
- class Timer:
- unit_divisor = 60
- hour_divisor = unit_divisor * unit_divisor
- def start(self):
- self._start_time = time.perf_counter()
- def log_time(self, message):
- from editor_python_test_tools.utils import Report
- elapsed_time = time.perf_counter() - self._start_time
- hours = int(elapsed_time / Timer.hour_divisor)
- minutes = int(elapsed_time % Timer.hour_divisor / Timer.unit_divisor)
- seconds = elapsed_time % Timer.unit_divisor
- Report.info(f'{message}: {hours:0>2d}:{minutes:0>2d}:{seconds:0>5.2f}\n')
- def time_editor_level_loading(level_dir, level_name):
- """
- Summary:
- Time how long it takes to load an arbitrary level, entering game mode, and exiting game mode
- Level Description:
- Preferably a level with a large number of entities
- Expected Behavior:
- Level loads within a reasonable time frame e.i. doesn't trip the framework timeout
- Benchmark Steps:
- 1) Time opening the level
- 2) Time entering game mode
- 3) Time exiting game mode
- 4) Close the editor
- :return: None
- """
- from editor_python_test_tools.utils import TestHelper as helper
- timer = Timer()
- helper.init_idle()
- # 1) Open level
- timer.start()
- helper.open_level(level_dir, level_name)
- timer.log_time('Level load time')
- # 2) Time how long it takes to enter game mode
- timer.start()
- helper.enter_game_mode(ENTER_MSG)
- timer.log_time('Enter game mode')
- # 3) Exit game mode
- timer.start()
- helper.exit_game_mode(EXIT_MSG)
- timer.log_time('Exit game mode')
- # 4) Close the editor
- helper.close_editor()
|