6
0
mirror of https://github.com/FirebirdSQL/firebird-qa.git synced 2025-02-02 02:40:42 +01:00

Added/Updated bugs\core_5222_test.py: test must be executed on FB 4.x+ in the same wayt as for FB 3.x: we use ReadConsistency = 0 in firebird.conf for this purpose. See details in the notes. Checked on 4.0.1.2692, 3.0.8.33535 - both on Linux and Windows.

This commit is contained in:
zotov 2022-06-06 23:05:45 +03:00
parent 32e9b1f04b
commit 037c32b4dc

View File

@ -11,22 +11,18 @@ DESCRIPTION:
async. start THREE child ISQLs sessions, one or two of them always raise exception after async. start THREE child ISQLs sessions, one or two of them always raise exception after
few seconds with text: 'deadlock / update conflicts' and could not finish its job. few seconds with text: 'deadlock / update conflicts' and could not finish its job.
NOTES: NOTES:
[12.08.2018] [06.06.2022] pzotov
It is unclear now how this test can be implemented on 4.0 after introduction of READ CONSISTENCY It was decided to set ReadConsistency = 0 in firebird.conf of FB 4.x+
with default value ReadConsistency = 1. According to doc: There is ability to start Tx in ReadConsistency when this parameter has such (NON-default) value
=== by explicitly specifying such isolation level:
If ReadConsistency set to 1 (by default) engine ignores ======
[NO] RECORD VERSION flags and makes all read-committed If ReadConsistency is set to 0 - flags [NO] RECORD VERSION takes effect as in previous Firebird
transactions READ COMMITTED READ CONSISTENCY. versions. READ COMMITTED READ CONSISTENCY isolation level should be specified explicitly by
=== application - in TPB or using SQL syntax.
======
See letter from pcisar 11-feb-2022 17:53, subj: "pytest + firebird-qa plugin with storing outcomes..."
Checked on 4.0.1.2692, 3.0.8.33535 - both on Linux and Windows.
Also, doc\\README.read_consistency.md says that:
"Old read-committed isolation modes (**RECORD VERSION** and **NO RECORD VERSION**) are still
allowed but considered as legacy and not recommended to use."
This mean that one can NOT to check issues of this ticket under 4.0 using default (and recommended)
value of config parameter 'ReadConsistency'.
For that reason it was decided to make new EMPTY section of test for 4.0.
JIRA: CORE-5222 JIRA: CORE-5222
FBTEST: bugs.core_5222 FBTEST: bugs.core_5222
""" """
@ -40,8 +36,6 @@ import re
from pathlib import Path from pathlib import Path
from firebird.qa import * from firebird.qa import *
# version: 3.0
init_script = """ init_script = """
create or alter procedure p_increment as begin end; create or alter procedure p_increment as begin end;
commit; commit;
@ -138,7 +132,7 @@ PLANNED_DML_ATTACHMENTS = 3
run_sql = temp_file('core_5222_run.sql') run_sql = temp_file('core_5222_run.sql')
dml_logs = temp_files([f'tmp_dml_5222_{i+1}' for i in range(PLANNED_DML_ATTACHMENTS)]) dml_logs = temp_files([f'tmp_dml_5222_{i+1}' for i in range(PLANNED_DML_ATTACHMENTS)])
@pytest.mark.version('>=3.0,<4') @pytest.mark.version('>=3.0')
def test_1(act: Action, run_sql: Path, dml_logs: List[Path], capsys): def test_1(act: Action, run_sql: Path, dml_logs: List[Path], capsys):
pattern = re.compile("BEFORE_PROC*|PROC_START*|SELECTED_ID*|PROC_FINISH*|AFTER_PROC*") pattern = re.compile("BEFORE_PROC*|PROC_START*|SELECTED_ID*|PROC_FINISH*|AFTER_PROC*")
run_sql.write_text(test_script) run_sql.write_text(test_script)
@ -185,10 +179,3 @@ def test_1(act: Action, run_sql: Path, dml_logs: List[Path], capsys):
act.expected_stdout = expected_stdout act.expected_stdout = expected_stdout
act.stdout = capsys.readouterr().out act.stdout = capsys.readouterr().out
assert act.clean_stdout == act.clean_expected_stdout assert act.clean_stdout == act.clean_expected_stdout
# version: 4.0
@pytest.mark.skip('FIXME: Not IMPLEMENTED')
@pytest.mark.version('>=4.0')
def test_2(act: Action):
pytest.fail("Not IMPLEMENTED")