2021-04-26 20:07:00 +02:00
|
|
|
|
#coding:utf-8
|
2022-01-21 18:49:26 +01:00
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
ID: issue-3363
|
|
|
|
|
ISSUE: 3363
|
|
|
|
|
TITLE: Error in Trace plugin (use local symbols in query)
|
|
|
|
|
DESCRIPTION:
|
|
|
|
|
JIRA: CORE-2981
|
2022-02-02 15:46:19 +01:00
|
|
|
|
FBTEST: bugs.core_2981
|
2022-01-21 18:49:26 +01:00
|
|
|
|
"""
|
2021-04-26 20:07:00 +02:00
|
|
|
|
|
|
|
|
|
import pytest
|
2021-11-16 19:44:53 +01:00
|
|
|
|
from difflib import unified_diff
|
2022-01-21 18:49:26 +01:00
|
|
|
|
from firebird.qa import *
|
2021-04-26 20:07:00 +02:00
|
|
|
|
|
2022-01-21 18:49:26 +01:00
|
|
|
|
db = db_factory()
|
2021-04-26 20:07:00 +02:00
|
|
|
|
|
2022-01-21 18:49:26 +01:00
|
|
|
|
act = python_act('db')
|
2021-11-16 19:44:53 +01:00
|
|
|
|
|
2022-01-21 18:49:26 +01:00
|
|
|
|
test_script = """
|
2021-11-16 19:44:53 +01:00
|
|
|
|
set list on;
|
|
|
|
|
select '*Лев Николаевич Толстой *
|
|
|
|
|
|
|
|
|
|
*Анна Каренина *
|
|
|
|
|
|
|
|
|
|
/Мне отмщение, и аз воздам/
|
|
|
|
|
|
|
|
|
|
*ЧАСТЬ ПЕРВАЯ*
|
|
|
|
|
|
|
|
|
|
*I *
|
|
|
|
|
|
|
|
|
|
Все счастливые семьи похожи друг на друга, каждая несчастливая
|
|
|
|
|
семья несчастлива по-своему.
|
|
|
|
|
Все смешалось в доме Облонских. Жена узнала, что муж был в связи
|
|
|
|
|
с бывшею в их доме француженкою-гувернанткой, и объявила мужу, что
|
|
|
|
|
не может жить с ним в одном доме. Положение это продолжалось уже
|
|
|
|
|
третий день и мучительно чувствовалось и самими супругами, и всеми
|
|
|
|
|
членами семьи, и домочадцами. Все члены семьи и домочадцы
|
|
|
|
|
чувствовали, что нет смысла в их сожительстве и что на каждом
|
|
|
|
|
постоялом дворе случайно сошедшиеся люди более связаны между собой,
|
|
|
|
|
чем они, члены семьи и домочадцы Облонских. Жена не выходила из
|
|
|
|
|
своих комнат, мужа третий день не было дома. Дети бегали по всему
|
|
|
|
|
дому, как потерянные; англичанка поссорилась с экономкой и написала
|
|
|
|
|
записку приятельнице, прося приискать ей новое место; повар ушел еще
|
|
|
|
|
вчера со двора, во время обеда; черная кухарка и кучер просили расчета.
|
|
|
|
|
На третий день после ссоры князь Степан Аркадьич Облонский --
|
|
|
|
|
Стива, как его звали в свете, -- в обычный час, то есть в восемь
|
|
|
|
|
часов утра, проснулся не в спальне жены, а в своем кабинете, на
|
|
|
|
|
сафьянном диване... Он повернул свое полное, выхоленное тело на
|
|
|
|
|
пружинах дивана, как бы желая опять заснуть надолго, с другой
|
|
|
|
|
стороны крепко обнял подушку и прижался к ней щекой; но вдруг
|
|
|
|
|
вскочил, сел на диван и открыл глаза.
|
|
|
|
|
"Да, да, как это было? -- думал он, вспоминая сон. -- Да, как это
|
|
|
|
|
было? Да! Алабин давал обед в Дармштадте; нет, не в Дармштадте, а
|
|
|
|
|
что-то американское. Да, но там Дармштадт был в Америке. Да, Алабин
|
|
|
|
|
давал обед на стеклянных столах, да, -- и столы пели: Il mio tesoro,
|
|
|
|
|
и не Il mio tesoro, а что-то лучше, и какие-то маленькие графинчики,
|
|
|
|
|
и они же женщины", -- вспоминал он.
|
|
|
|
|
Глаза Степана Аркадьича весело заблестели, и он задумался,
|
|
|
|
|
улыбаясь. "Да, хорошо было, очень хорошо. Много еще там было
|
|
|
|
|
отличного, да не скажешь словами и мыслями даже наяву не выразишь".
|
|
|
|
|
И, заметив полосу света, пробившуюся сбоку одной из суконных стор,
|
|
|
|
|
он весело скинул ноги с дивана, отыскал ими шитые женой (подарок ко
|
|
|
|
|
дню рождения в прошлом году), обделанные в золотистый сафьян туфли и
|
|
|
|
|
по старой, девятилетней привычке, не вставая, потянулся рукой к тому
|
|
|
|
|
месту, где в спальне у него висел халат. И тут он вспомнил вдруг,
|
|
|
|
|
как и почему он спит не в спальне жены, а в кабинете; улыбка исчезла
|
|
|
|
|
с его лица, он сморщил лоб.
|
|
|
|
|
"Ах, ах, ах! Ааа!.." -- замычал он, вспоминая все, что было. И
|
|
|
|
|
его воображению представились опять все подробности ссоры с женою,
|
|
|
|
|
вся безвыходность его положения и мучительнее всего собственная вина
|
|
|
|
|
его.
|
|
|
|
|
"Да! она не простит и не может простить. И всего ужаснее то, что
|
|
|
|
|
виной всему я, виной я, а не виноват. В этом-то вся драма, -- думал
|
|
|
|
|
он. -- Ах, ах, ах!" -- приговаривал он с отчаянием, вспоминая самые
|
|
|
|
|
тяжелые для себя впечатления из этой ссоры.
|
|
|
|
|
Неприятнее всего была та первая минута, когда он, вернувшись из
|
|
|
|
|
театра, веселый и довольный, с огромною грушей для жены в руке, не
|
|
|
|
|
нашел жены в гостиной; к удивлению, не нашел ее и в кабинете и,
|
|
|
|
|
наконец, увидал ее в спальне с несчастною, открывшею все, запиской в
|
|
|
|
|
руке.
|
|
|
|
|
Она, эта вечно озабоченная, и хлопотливая, и недалекая, какою он
|
|
|
|
|
считал ее, Долли, неподвижно сидела с запиской в руке и с выражением
|
|
|
|
|
ужаса, отчаяния и гнева смотрела на него.
|
|
|
|
|
-- Что это? это? -- спрашивала она, указывая на записку.
|
|
|
|
|
И при этом воспоминании, как это часто бывает, мучала Степана
|
|
|
|
|
Аркадьича не столько самое событие, сколько то, как он ответил на
|
|
|
|
|
эти слова жены.
|
|
|
|
|
С ним случилось в эту минуту то, что случается с людьми, когда
|
|
|
|
|
они неожиданно уличены в чем-нибудь слишком постыдном. Он не сумел
|
|
|
|
|
приготовить свое лицо к тому положению, в которое он становился
|
|
|
|
|
перед женой после открытия его вины. Вместо того чтоб оскорбиться,
|
|
|
|
|
отрекаться, оправдываться, просить прощения, оставаться даже
|
|
|
|
|
равнодушным -- все было бы лучше того, что он сделал! -- его лицо
|
|
|
|
|
совершенно невольно ("рефлексы головного мозга", -- подумал Степан
|
|
|
|
|
Аркадьич, который любил физиологию), совершенно невольно вдруг
|
|
|
|
|
улыбнулось привычною, доброю и потому глупою улыбкой.
|
|
|
|
|
Эту глупую улыбку он не мог простить себе. Увидав эту улыбку,
|
|
|
|
|
Долли вздрогнула, как от физической боли, разразилась, со
|
|
|
|
|
свойственною ей горячностью, потоком жестоких слов и выбежала из
|
|
|
|
|
комнаты. С тех пор она не хотела видеть мужа.
|
|
|
|
|
"Всему виной эта глупая улыбка", -- думал Степан Аркадьич.
|
|
|
|
|
"Но что же делать? что делать?" -- с отчаянием говорил он себе и
|
|
|
|
|
не находил ответа.
|
|
|
|
|
' from rdb$database;
|
|
|
|
|
"""
|
|
|
|
|
|
2021-12-07 20:09:36 +01:00
|
|
|
|
|
2022-01-21 18:49:26 +01:00
|
|
|
|
trace = ['include_filter = %(SELECT|INSERT|UPDATE|DELETE)%',
|
2021-12-07 20:09:36 +01:00
|
|
|
|
'exclude_filter = %no_trace%',
|
|
|
|
|
'log_connections = true',
|
|
|
|
|
'log_transactions = true',
|
|
|
|
|
'log_statement_prepare = true',
|
|
|
|
|
'log_statement_free = true',
|
|
|
|
|
'log_statement_start = true',
|
|
|
|
|
'log_statement_finish = true',
|
|
|
|
|
'log_trigger_start = true',
|
|
|
|
|
'log_trigger_finish = true',
|
|
|
|
|
'log_context = true',
|
|
|
|
|
'print_plan = true',
|
|
|
|
|
'print_perf = true',
|
|
|
|
|
'time_threshold = 0',
|
|
|
|
|
'max_sql_length = 5000',
|
|
|
|
|
'max_blr_length = 500',
|
|
|
|
|
'max_dyn_length = 500',
|
|
|
|
|
'max_arg_length = 80',
|
|
|
|
|
'max_arg_count = 30',
|
|
|
|
|
]
|
2021-04-26 20:07:00 +02:00
|
|
|
|
|
2024-05-15 19:26:01 +02:00
|
|
|
|
@pytest.mark.trace
|
2022-01-21 18:49:26 +01:00
|
|
|
|
@pytest.mark.version('>=3')
|
|
|
|
|
def test_1(act: Action):
|
2021-11-16 19:44:53 +01:00
|
|
|
|
# Get content of firebird.log BEFORE test
|
2022-01-21 18:49:26 +01:00
|
|
|
|
log_before = act.get_firebird_log()
|
|
|
|
|
with act.trace(db_events=trace, keep_log=False, encoding='utf8'):
|
|
|
|
|
act.isql(switches=['-n', '-q'], input=test_script)
|
2021-11-16 19:44:53 +01:00
|
|
|
|
# Get content of firebird.log AFTER test
|
2022-01-21 18:49:26 +01:00
|
|
|
|
log_after = act.get_firebird_log()
|
2021-11-16 19:44:53 +01:00
|
|
|
|
assert '\n'.join(unified_diff(log_before, log_after)) == ''
|