mirror of
https://github.com/FirebirdSQL/firebird-qa.git
synced 2025-01-22 13:33:07 +01:00
Added/Updated tests\bugs\gh_5749_test.py: Checked on 5.0.0.742 - all OK.
This commit is contained in:
parent
7c600da32e
commit
d19b8ebbe6
63
tests/bugs/gh_5749_test.py
Normal file
63
tests/bugs/gh_5749_test.py
Normal file
@ -0,0 +1,63 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: issue-5749
|
||||
ISSUE: 5749
|
||||
TITLE: Token unknown error on formfeed in query [CORE5479]
|
||||
DESCRIPTION:
|
||||
Test makes temporary .sql file and writes there several queries like:
|
||||
select 'some_text'<DELIMITER>from rdb$database;
|
||||
- where <DELIMITER> is every character from following list:
|
||||
findstr /i /c:"CHR_WHITE," %fb_sources_home%/master/src/dsql/chars.h
|
||||
Output:
|
||||
009 CHR_WHITE, // 0x9
|
||||
010 CHR_WHITE, // 0xA
|
||||
012 CHR_WHITE, // 0xC
|
||||
013 CHR_WHITE, // 0xD
|
||||
032 CHR_WHITE, // this can be skipped from check
|
||||
|
||||
NB: character \u000B [currently] NOT present in this list.
|
||||
|
||||
NOTES:
|
||||
[18.02.2023] pzotov
|
||||
Confirmed problem on 5.0.0.736 (18-sep-2022): literal 0xC ('\u000c') could not be used as delimiter, got:
|
||||
Statement failed, SQLSTATE = 42000
|
||||
Dynamic SQL Error
|
||||
-SQL error code = -104
|
||||
-Token unknown - line 1, column 15
|
||||
-
|
||||
Checked on 5.0.0.742 - all OK.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
from pathlib import Path
|
||||
|
||||
db = db_factory()
|
||||
act = python_act('db')
|
||||
|
||||
tmp_file = temp_file('gh_5749_tmp.sql')
|
||||
|
||||
expected_stdout = """
|
||||
CONSTANT u0009
|
||||
CONSTANT u000A
|
||||
CONSTANT u000C
|
||||
CONSTANT u000D
|
||||
"""
|
||||
|
||||
whitespace_sql = u"""set list on;
|
||||
select 'u0009'\u0009from rdb$database;
|
||||
select 'u000A'\u000Afrom rdb$database;
|
||||
select 'u000C'\u000Cfrom rdb$database;
|
||||
select 'u000D'\u000Dfrom rdb$database;
|
||||
"""
|
||||
# NB: select 'u000B'\u000Bfrom rdb$database; -- FAILS with token unknown.
|
||||
|
||||
@pytest.mark.version('>=5.0')
|
||||
def test_1(act: Action, tmp_file: Path):
|
||||
|
||||
tmp_file.write_bytes(whitespace_sql.encode('utf-8'))
|
||||
|
||||
act.expected_stdout = expected_stdout
|
||||
act.isql(switches=['-q'], input_file=tmp_file, charset='utf-8', io_enc='utf-8', combine_output = True)
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
Loading…
Reference in New Issue
Block a user