diff --git a/tests/bugs/core_5831_test.py b/tests/bugs/core_5831_test.py index 290c8e0b..452d8afb 100644 --- a/tests/bugs/core_5831_test.py +++ b/tests/bugs/core_5831_test.py @@ -19,7 +19,7 @@ NOTES: [13.06.2022] pzotov Checked on 4.0.1.2692, 3.0.8.33535 - both on Linux and Windows. """ - +import os import re import datetime as py_dt from datetime import timedelta @@ -28,6 +28,23 @@ import pytest from firebird.qa import * from firebird.driver import DatabaseError +########################### +### S E T T I N G S ### +########################### + +# QA_GLOBALS -- dict, is defined in qa/plugin.py, obtain settings +# from act.files_dir/'test_config.ini': +enc_settings = QA_GLOBALS['encryption'] + +# ACHTUNG: this must be carefully tuned on every new host: +# +MAX_WAITING_ENCR_FINISH = int(enc_settings['MAX_WAIT_FOR_ENCR_FINISH_WIN' if os.name == 'nt' else 'MAX_WAIT_FOR_ENCR_FINISH_NIX']) +assert MAX_WAITING_ENCR_FINISH > 0 + +ENCRYPTION_PLUGIN = enc_settings['encryption_plugin'] # fbSampleDbCrypt +ENCRYPTION_KEY = enc_settings['encryption_key'] # Red + + substitutions = [ ('ATTRIBUTES (FORCE WRITE,)? ENCRYPTED, PLUGIN.*', 'ATTRIBUTES ENCRYPTED'), ('CRYPT CHECKSUM.*', 'CRYPT CHECKSUM'), @@ -49,14 +66,6 @@ expected_stdout_gstat = """ @pytest.mark.version('>=3.0.4') def test_1(act: Action, capsys): - # QA_GLOBALS -- dict, is defined in qa/plugin.py, obtain settings - # from act.files_dir/'test_config.ini': - enc_settings = QA_GLOBALS['encryption'] - - MAX_ENCRYPT_DECRYPT_MS = int(enc_settings['max_encrypt_decrypt_ms']) # 5000 - ENCRYPTION_PLUGIN = enc_settings['encryption_plugin'] # fbSampleDbCrypt - ENCRYPTION_KEY = enc_settings['encryption_key'] # Red - encryption_started = False encryption_finished = False with act.db.connect() as con: @@ -77,8 +86,8 @@ def test_1(act: Action, capsys): while encryption_started: t2=py_dt.datetime.now() d1=t2-t1 - if d1.seconds*1000 + d1.microseconds//1000 > MAX_ENCRYPT_DECRYPT_MS: - print(f'TIMEOUT EXPIRATION: encryption took {d1.seconds*1000 + d1.microseconds//1000} ms which exceeds limit = {MAX_ENCRYPT_DECRYPT_MS} ms.') + if d1.seconds*1000 + d1.microseconds//1000 > MAX_WAITING_ENCR_FINISH: + print(f'TIMEOUT EXPIRATION: encryption took {d1.seconds*1000 + d1.microseconds//1000} ms which exceeds limit = {MAX_WAITING_ENCR_FINISH} ms.') break # Possible output: