2 @message |
assert
- Generator GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
+ Generator PUBLIC.GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
- Generator GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
+ Generator PUBLIC.GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
- Generator GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
+ Generator PUBLIC.GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
- Generator GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
+ Generator PUBLIC.GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
- Generator GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
+ Generator PUBLIC.GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
- Generator GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
+ Generator PUBLIC.GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
- Generator GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
+ Generator PUBLIC.GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
LOG DETAILS:
2025-06-28 05:14:02.538
2025-06-28 05:14:02.544 act_src = <firebird.qa.plugin.Action object at [hex]>
2025-06-28 05:14:02.549 act_res = <firebird.qa.plugin.Action object at [hex]>
2025-06-28 05:14:02.554 tmp_fbk = PosixPath('/var/tmp/qa_2024/test_1881/tmp_core_4524.encrypted.fbk')
2025-06-28 05:14:02.559 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-28 05:14:02.564
2025-06-28 05:14:02.573 @pytest.mark.encryption
2025-06-28 05:14:02.584 @pytest.mark.version('>=4.0')
2025-06-28 05:14:02.591 def test_1(act_src: Action, act_res: Action, tmp_fbk:Path, capsys):
2025-06-28 05:14:02.598
2025-06-28 05:14:02.603 init_sql = """
2025-06-28 05:14:02.608 set bail on;
2025-06-28 05:14:02.614 create sequence gen_ba0bab start with 12192683;
2025-06-28 05:14:02.620 create sequence gen_badf00d start with 195948557;
2025-06-28 05:14:02.625 create sequence gen_caca0 start with 830624;
2025-06-28 05:14:02.632 create sequence gen_c0ffee start with 12648430;
2025-06-28 05:14:02.639 create sequence gen_dec0de start with 14598366;
2025-06-28 05:14:02.650 create sequence gen_decade start with 14600926;
2025-06-28 05:14:02.658 create sequence gen_7FFFFFFF start with 2147483647;
2025-06-28 05:14:02.664 commit;
2025-06-28 05:14:02.670 """
2025-06-28 05:14:02.676
2025-06-28 05:14:02.682 act_src.expected_stdout = ''
2025-06-28 05:14:02.691 act_src.isql(switches = ['-q'], input = init_sql, combine_output = True, io_enc = locale.getpreferredencoding())
2025-06-28 05:14:02.699 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-28 05:14:02.711 act_src.reset()
2025-06-28 05:14:02.719
2025-06-28 05:14:02.725 check_sequence_values=[]
2025-06-28 05:14:02.731 with act_src.db.connect() as con:
2025-06-28 05:14:02.735 with con.cursor() as cur:
2025-06-28 05:14:02.740 get_current_seq_values='''
2025-06-28 05:14:02.745 execute block returns( gen_curr bigint) as
2025-06-28 05:14:02.750 declare gen_name rdb$generator_name;
2025-06-28 05:14:02.755 begin
2025-06-28 05:14:02.762 for
2025-06-28 05:14:02.770 select rdb$generator_name from rdb$generators where rdb$system_flag is distinct from 1 order by rdb$generator_id
2025-06-28 05:14:02.776 into gen_name
2025-06-28 05:14:02.782 do begin
2025-06-28 05:14:02.790 execute statement 'execute block returns(g bigint) as begin g = gen_id('|| gen_name ||', 0); suspend; end' into gen_curr;
2025-06-28 05:14:02.800 suspend;
2025-06-28 05:14:02.810 end
2025-06-28 05:14:02.816 end
2025-06-28 05:14:02.822 '''
2025-06-28 05:14:02.828
2025-06-28 05:14:02.835 # Obtain current values of user generators:
2025-06-28 05:14:02.842 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2025-06-28 05:14:02.853 cur.execute(get_current_seq_values)
2025-06-28 05:14:02.860 for r in cur:
2025-06-28 05:14:02.865 check_sequence_values += r[0],
2025-06-28 05:14:02.871
2025-06-28 05:14:02.877
2025-06-28 05:14:02.885 # Obtain page size and ID of generators page:
2025-06-28 05:14:02.895 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2025-06-28 05:14:02.908 cur.execute('select m.mon$page_size,min(rdb$page_number) from mon$database m cross join rdb$pages p where p.rdb$page_type = 9 group by 1')
2025-06-28 05:14:02.918 pg_size, gen_page_number = -1,-1
2025-06-28 05:14:02.929 for r in cur:
2025-06-28 05:14:02.935 pg_size=r[0]
2025-06-28 05:14:02.942 gen_page_number=r[1]
2025-06-28 05:14:02.949 # print(r[0],r[1])
2025-06-28 05:14:02.955
2025-06-28 05:14:02.966
2025-06-28 05:14:02.971 # Read gen page, convert it to hex and check whether generator values can be found there or no:
2025-06-28 05:14:02.978 # Expected result: YES for all values because DB not encrypted now.
2025-06-28 05:14:02.989 # ~~~~~~~~~~~~~~~
2025-06-28 05:14:02.997 check_page_for_readable_values(act_src.db.db_path, gen_page_number, pg_size, check_sequence_values, False, 'INIT. ')
2025-06-28 05:14:03.010
2025-06-28 05:14:03.023 act_src.expected_stdout = 'INIT. ' + SUCCESS_MSG
2025-06-28 05:14:03.035 act_src.stdout = capsys.readouterr().out
2025-06-28 05:14:03.044 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-28 05:14:03.051 act_src.reset()
2025-06-28 05:14:03.059
2025-06-28 05:14:03.069 ######################################################
2025-06-28 05:14:03.077
2025-06-28 05:14:03.084 t1=py_dt.datetime.now()
2025-06-28 05:14:03.090 d1 = t1-t1
2025-06-28 05:14:03.102 sttm = f'alter database encrypt with "{ENCRYPTION_PLUGIN}" key "{ENCRYPTION_KEY}"'
2025-06-28 05:14:03.111 try:
2025-06-28 05:14:03.117 con.execute_immediate(sttm)
2025-06-28 05:14:03.123 con.commit()
2025-06-28 05:14:03.130 except DatabaseError as e:
2025-06-28 05:14:03.136 print( e.__str__() )
2025-06-28 05:14:03.143
2025-06-28 05:14:03.150 act_src.expected_stdout = ''
2025-06-28 05:14:03.157 act_src.stdout = capsys.readouterr().out
2025-06-28 05:14:03.164 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-28 05:14:03.171 act_src.reset()
2025-06-28 05:14:03.177
2025-06-28 05:14:03.183 while True:
2025-06-28 05:14:03.190 t2=py_dt.datetime.now()
2025-06-28 05:14:03.197 d1=t2-t1
2025-06-28 05:14:03.204 if d1.seconds*1000 + d1.microseconds//1000 > MAX_WAITING_ENCR_FINISH:
2025-06-28 05:14:03.212 con.execute_immediate(f"select 'TIMEOUT EXPIRATION: encryption took {d1.seconds*1000 + d1.microseconds//1000} ms which exceeds limit = {MAX_WAITING_ENCR_FINISH} ms.' as msg from rdb$database")
2025-06-28 05:14:03.219 break
2025-06-28 05:14:03.225
2025-06-28 05:14:03.232 # Possible output:
2025-06-28 05:14:03.238 # Database not encrypted
2025-06-28 05:14:03.245 # Database encrypted, crypt thread not complete
2025-06-28 05:14:03.252 act_src.isql(switches=['-q'], input = 'show database;', combine_output = True)
2025-06-28 05:14:03.259 if 'Database encrypted' in act_src.stdout:
2025-06-28 05:14:03.266 if 'not complete' in act_src.stdout:
2025-06-28 05:14:03.273 pass
2025-06-28 05:14:03.279 else:
2025-06-28 05:14:03.286 break
2025-06-28 05:14:03.293 act_src.reset()
2025-06-28 05:14:03.300
2025-06-28 05:14:03.314 if d1.seconds*1000 + d1.microseconds//1000 <= MAX_WAITING_ENCR_FINISH:
2025-06-28 05:14:03.324 act_src.reset()
2025-06-28 05:14:03.333 act_src.gstat(switches=['-e'])
2025-06-28 05:14:03.340
2025-06-28 05:14:03.346 # Data pages: total 884803, encrypted 884803, non-crypted 0
2025-06-28 05:14:03.352 # ...
2025-06-28 05:14:03.359 pattern = re.compile('(data|index|blob|generator)\\s+pages[:]{0,1}\\s+total[:]{0,1}\\s+\\d+[,]{0,1}\\s+encrypted[:]{0,1}\\s+\\d+.*[,]{0,1}non-crypted[:]{0,1}\\s+\\d+.*', re.IGNORECASE)
2025-06-28 05:14:03.365 for line in act_src.stdout.splitlines():
2025-06-28 05:14:03.371 if pattern.match(line.strip()):
2025-06-28 05:14:03.380 # We assume that every line finishes with number of NON-crypted pages, and this number must be 0:
2025-06-28 05:14:03.386 words = line.split()
2025-06-28 05:14:03.393 if words[-1] == '0':
2025-06-28 05:14:03.400 print(words[0] + ': expected, ' + words[-1])
2025-06-28 05:14:03.405 else:
2025-06-28 05:14:03.411 print(words[0] + ': UNEXPECTED, ' + words[-1])
2025-06-28 05:14:03.419
2025-06-28 05:14:03.430 expected_gstat_tail = """
2025-06-28 05:14:03.439 Data: expected, 0
2025-06-28 05:14:03.447 Index: expected, 0
2025-06-28 05:14:03.457 Blob: expected, 0
2025-06-28 05:14:03.466 Generator: expected, 0
2025-06-28 05:14:03.474 """
2025-06-28 05:14:03.483 act_src.expected_stdout = expected_gstat_tail
2025-06-28 05:14:03.493 act_src.stdout = capsys.readouterr().out
2025-06-28 05:14:03.502 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-28 05:14:03.513 act_src.reset()
2025-06-28 05:14:03.524
2025-06-28 05:14:03.538 else:
2025-06-28 05:14:03.549 print(f'TIMEOUT EXPIRATION: encryption took {d1.seconds*1000 + d1.microseconds//1000} ms which exceeds limit = {MAX_WAITING_ENCR_FINISH} ms.')
2025-06-28 05:14:03.562
2025-06-28 05:14:03.573 ######################################################
2025-06-28 05:14:03.581
2025-06-28 05:14:03.587 # see also core_6071_test.py:
2025-06-28 05:14:03.599 act_src.gbak(switches=['-b', '-KEYHOLDER', ENCRYPTION_HOLDER, '-crypt', ENCRYPTION_PLUGIN, act_src.db.dsn, str(tmp_fbk)])
2025-06-28 05:14:03.606 act_src.reset()
2025-06-28 05:14:03.615
2025-06-28 05:14:03.626 act_src.gbak(switches=['-rep', '-KEYHOLDER', ENCRYPTION_HOLDER, str(tmp_fbk), act_res.db.dsn ])
2025-06-28 05:14:03.635 act_src.reset()
2025-06-28 05:14:03.643
2025-06-28 05:14:03.651 act_src.gfix(switches=['-v', '-full', str(act_res.db.db_path)])
2025-06-28 05:14:03.662 act_src.reset()
2025-06-28 05:14:03.670
2025-06-28 05:14:03.677 # Read gen page in RESTORED database, convert it to hex and check whether generator values can be found there or no.
2025-06-28 05:14:03.687 # Expected result: NOT for all values because DB was encrypted.
2025-06-28 05:14:03.697 # ~~~~~~~~~~~~~~~~
2025-06-28 05:14:03.705 check_page_for_readable_values(act_res.db.db_path, gen_page_number, pg_size, check_sequence_values, True, 'FINAL. ')
2025-06-28 05:14:03.712
2025-06-28 05:14:03.719 act_src.expected_stdout = 'FINAL. ' + SUCCESS_MSG
2025-06-28 05:14:03.727 act_src.stdout = capsys.readouterr().out
2025-06-28 05:14:03.738 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-28 05:14:03.746 act_src.reset()
2025-06-28 05:14:03.753
2025-06-28 05:14:03.758 #< with act_src.db.connect()
2025-06-28 05:14:03.763
2025-06-28 05:14:03.768 # Final check: ensure that sequences have proper values:
2025-06-28 05:14:03.773 ##############
2025-06-28 05:14:03.778 act_res.expected_stdout = """
2025-06-28 05:14:03.785 Generator GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
2025-06-28 05:14:03.789 Generator GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
2025-06-28 05:14:03.795 Generator GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
2025-06-28 05:14:03.801 Generator GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
2025-06-28 05:14:03.807 Generator GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
2025-06-28 05:14:03.812 Generator GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
2025-06-28 05:14:03.817 Generator GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
2025-06-28 05:14:03.821 """
2025-06-28 05:14:03.833 act_res.isql(switches = ['-q'], input = 'show sequ;', combine_output = True, io_enc = locale.getpreferredencoding())
2025-06-28 05:14:03.841 > assert act_res.clean_stdout == act_res.clean_expected_stdout
2025-06-28 05:14:03.847 E assert
2025-06-28 05:14:03.860 E - Generator GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
2025-06-28 05:14:03.869 E + Generator PUBLIC.GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
2025-06-28 05:14:03.881 E - Generator GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
2025-06-28 05:14:03.886 E + Generator PUBLIC.GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
2025-06-28 05:14:03.900 E - Generator GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
2025-06-28 05:14:03.908 E + Generator PUBLIC.GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
2025-06-28 05:14:03.922 E - Generator GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
2025-06-28 05:14:03.931 E + Generator PUBLIC.GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
2025-06-28 05:14:03.952 E - Generator GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
2025-06-28 05:14:03.960 E + Generator PUBLIC.GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
2025-06-28 05:14:03.974 E - Generator GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
2025-06-28 05:14:03.980 E + Generator PUBLIC.GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
2025-06-28 05:14:03.993 E - Generator GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
2025-06-28 05:14:03.999 E + Generator PUBLIC.GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
2025-06-28 05:14:04.019
2025-06-28 05:14:04.027 tests/bugs/core_4524_test.py:281: AssertionError
2025-06-28 05:14:04.034 ---------------------------- Captured stdout setup -----------------------------
2025-06-28 05:14:04.041 Creating db: localhost:/var/tmp/qa_2024/test_1881/test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
2025-06-28 05:14:04.046 Creating db: localhost:/var/tmp/qa_2024/test_1881/tmp_core_4524.restored.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
|
3 #text |
act_src = <firebird.qa.plugin.Action pytest object at [hex]>
act_res = <firebird.qa.plugin.Action pytest object at [hex]>
tmp_fbk = PosixPath('/var/tmp/qa_2024/test_1881/tmp_core_4524.encrypted.fbk')
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>
@pytest.mark.encryption
@pytest.mark.version('>=4.0')
def test_1(act_src: Action, act_res: Action, tmp_fbk:Path, capsys):
init_sql = """
set bail on;
create sequence gen_ba0bab start with 12192683;
create sequence gen_badf00d start with 195948557;
create sequence gen_caca0 start with 830624;
create sequence gen_c0ffee start with 12648430;
create sequence gen_dec0de start with 14598366;
create sequence gen_decade start with 14600926;
create sequence gen_7FFFFFFF start with 2147483647;
commit;
"""
act_src.expected_stdout = ''
act_src.isql(switches = ['-q'], input = init_sql, combine_output = True, io_enc = locale.getpreferredencoding())
assert act_src.clean_stdout == act_src.clean_expected_stdout
act_src.reset()
check_sequence_values=[]
with act_src.db.connect() as con:
with con.cursor() as cur:
get_current_seq_values='''
execute block returns( gen_curr bigint) as
declare gen_name rdb$generator_name;
begin
for
select rdb$generator_name from rdb$generators where rdb$system_flag is distinct from 1 order by rdb$generator_id
into gen_name
do begin
execute statement 'execute block returns(g bigint) as begin g = gen_id('|| gen_name ||', 0); suspend; end' into gen_curr;
suspend;
end
end
'''
# Obtain current values of user generators:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cur.execute(get_current_seq_values)
for r in cur:
check_sequence_values += r[0],
# Obtain page size and ID of generators page:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cur.execute('select m.mon$page_size,min(rdb$page_number) from mon$database m cross join rdb$pages p where p.rdb$page_type = 9 group by 1')
pg_size, gen_page_number = -1,-1
for r in cur:
pg_size=r[0]
gen_page_number=r[1]
# print(r[0],r[1])
# Read gen page, convert it to hex and check whether generator values can be found there or no:
# Expected result: YES for all values because DB not encrypted now.
# ~~~~~~~~~~~~~~~
check_page_for_readable_values(act_src.db.db_path, gen_page_number, pg_size, check_sequence_values, False, 'INIT. ')
act_src.expected_stdout = 'INIT. ' + SUCCESS_MSG
act_src.stdout = capsys.readouterr().out
assert act_src.clean_stdout == act_src.clean_expected_stdout
act_src.reset()
######################################################
t1=py_dt.datetime.now()
d1 = t1-t1
sttm = f'alter database encrypt with "{ENCRYPTION_PLUGIN}" key "{ENCRYPTION_KEY}"'
try:
con.execute_immediate(sttm)
con.commit()
except DatabaseError as e:
print( e.__str__() )
act_src.expected_stdout = ''
act_src.stdout = capsys.readouterr().out
assert act_src.clean_stdout == act_src.clean_expected_stdout
act_src.reset()
while True:
t2=py_dt.datetime.now()
d1=t2-t1
if d1.seconds*1000 + d1.microseconds//1000 > MAX_WAITING_ENCR_FINISH:
con.execute_immediate(f"select 'TIMEOUT EXPIRATION: encryption took {d1.seconds*1000 + d1.microseconds//1000} ms which exceeds limit = {MAX_WAITING_ENCR_FINISH} ms.' as msg from rdb$database")
break
# Possible output:
# Database not encrypted
# Database encrypted, crypt thread not complete
act_src.isql(switches=['-q'], input = 'show database;', combine_output = True)
if 'Database encrypted' in act_src.stdout:
if 'not complete' in act_src.stdout:
pass
else:
break
act_src.reset()
if d1.seconds*1000 + d1.microseconds//1000 <= MAX_WAITING_ENCR_FINISH:
act_src.reset()
act_src.gstat(switches=['-e'])
# Data pages: total 884803, encrypted 884803, non-crypted 0
# ...
pattern = re.compile('(data|index|blob|generator)\\s+pages[:]{0,1}\\s+total[:]{0,1}\\s+\\d+[,]{0,1}\\s+encrypted[:]{0,1}\\s+\\d+.*[,]{0,1}non-crypted[:]{0,1}\\s+\\d+.*', re.IGNORECASE)
for line in act_src.stdout.splitlines():
if pattern.match(line.strip()):
# We assume that every line finishes with number of NON-crypted pages, and this number must be 0:
words = line.split()
if words[-1] == '0':
print(words[0] + ': expected, ' + words[-1])
else:
print(words[0] + ': UNEXPECTED, ' + words[-1])
expected_gstat_tail = """
Data: expected, 0
Index: expected, 0
Blob: expected, 0
Generator: expected, 0
"""
act_src.expected_stdout = expected_gstat_tail
act_src.stdout = capsys.readouterr().out
assert act_src.clean_stdout == act_src.clean_expected_stdout
act_src.reset()
else:
print(f'TIMEOUT EXPIRATION: encryption took {d1.seconds*1000 + d1.microseconds//1000} ms which exceeds limit = {MAX_WAITING_ENCR_FINISH} ms.')
######################################################
# see also core_6071_test.py:
act_src.gbak(switches=['-b', '-KEYHOLDER', ENCRYPTION_HOLDER, '-crypt', ENCRYPTION_PLUGIN, act_src.db.dsn, str(tmp_fbk)])
act_src.reset()
act_src.gbak(switches=['-rep', '-KEYHOLDER', ENCRYPTION_HOLDER, str(tmp_fbk), act_res.db.dsn ])
act_src.reset()
act_src.gfix(switches=['-v', '-full', str(act_res.db.db_path)])
act_src.reset()
# Read gen page in RESTORED database, convert it to hex and check whether generator values can be found there or no.
# Expected result: NOT for all values because DB was encrypted.
# ~~~~~~~~~~~~~~~~
check_page_for_readable_values(act_res.db.db_path, gen_page_number, pg_size, check_sequence_values, True, 'FINAL. ')
act_src.expected_stdout = 'FINAL. ' + SUCCESS_MSG
act_src.stdout = capsys.readouterr().out
assert act_src.clean_stdout == act_src.clean_expected_stdout
act_src.reset()
#< with act_src.db.connect()
# Final check: ensure that sequences have proper values:
##############
act_res.expected_stdout = """
Generator GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
Generator GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
Generator GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
Generator GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
Generator GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
Generator GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
Generator GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
"""
act_res.isql(switches = ['-q'], input = 'show sequ;', combine_output = True, io_enc = locale.getpreferredencoding())
> assert act_res.clean_stdout == act_res.clean_expected_stdout
E assert
E - Generator GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
E + Generator PUBLIC.GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
E - Generator GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
E + Generator PUBLIC.GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
E - Generator GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
E + Generator PUBLIC.GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
E - Generator GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
E + Generator PUBLIC.GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
E - Generator GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
E + Generator PUBLIC.GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
E - Generator GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
E + Generator PUBLIC.GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
E - Generator GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
E + Generator PUBLIC.GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
tests/bugs/core_4524_test.py:281: AssertionError
|