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-29 05:31:59.013
2025-06-29 05:31:59.022 act_src = <firebird.qa.plugin.Action object at [hex]>
2025-06-29 05:31:59.028 act_res = <firebird.qa.plugin.Action object at [hex]>
2025-06-29 05:31:59.035 tmp_fbk = PosixPath('/var/tmp/qa_2024/test_1883/tmp_core_4524.encrypted.fbk')
2025-06-29 05:31:59.041 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-29 05:31:59.047
2025-06-29 05:31:59.052 @pytest.mark.encryption
2025-06-29 05:31:59.059 @pytest.mark.version('>=4.0')
2025-06-29 05:31:59.066 def test_1(act_src: Action, act_res: Action, tmp_fbk:Path, capsys):
2025-06-29 05:31:59.076
2025-06-29 05:31:59.085 init_sql = """
2025-06-29 05:31:59.092 set bail on;
2025-06-29 05:31:59.098 create sequence gen_ba0bab start with 12192683;
2025-06-29 05:31:59.104 create sequence gen_badf00d start with 195948557;
2025-06-29 05:31:59.111 create sequence gen_caca0 start with 830624;
2025-06-29 05:31:59.117 create sequence gen_c0ffee start with 12648430;
2025-06-29 05:31:59.124 create sequence gen_dec0de start with 14598366;
2025-06-29 05:31:59.131 create sequence gen_decade start with 14600926;
2025-06-29 05:31:59.137 create sequence gen_7FFFFFFF start with 2147483647;
2025-06-29 05:31:59.142 commit;
2025-06-29 05:31:59.147 """
2025-06-29 05:31:59.160
2025-06-29 05:31:59.169 act_src.expected_stdout = ''
2025-06-29 05:31:59.183 act_src.isql(switches = ['-q'], input = init_sql, combine_output = True, io_enc = locale.getpreferredencoding())
2025-06-29 05:31:59.191 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-29 05:31:59.198 act_src.reset()
2025-06-29 05:31:59.205
2025-06-29 05:31:59.211 check_sequence_values=[]
2025-06-29 05:31:59.218 with act_src.db.connect() as con:
2025-06-29 05:31:59.224 with con.cursor() as cur:
2025-06-29 05:31:59.229 get_current_seq_values='''
2025-06-29 05:31:59.234 execute block returns( gen_curr bigint) as
2025-06-29 05:31:59.241 declare gen_name rdb$generator_name;
2025-06-29 05:31:59.247 begin
2025-06-29 05:31:59.253 for
2025-06-29 05:31:59.260 select rdb$generator_name from rdb$generators where rdb$system_flag is distinct from 1 order by rdb$generator_id
2025-06-29 05:31:59.267 into gen_name
2025-06-29 05:31:59.274 do begin
2025-06-29 05:31:59.283 execute statement 'execute block returns(g bigint) as begin g = gen_id('|| gen_name ||', 0); suspend; end' into gen_curr;
2025-06-29 05:31:59.296 suspend;
2025-06-29 05:31:59.309 end
2025-06-29 05:31:59.322 end
2025-06-29 05:31:59.331 '''
2025-06-29 05:31:59.342
2025-06-29 05:31:59.353 # Obtain current values of user generators:
2025-06-29 05:31:59.363 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2025-06-29 05:31:59.369 cur.execute(get_current_seq_values)
2025-06-29 05:31:59.377 for r in cur:
2025-06-29 05:31:59.382 check_sequence_values += r[0],
2025-06-29 05:31:59.387
2025-06-29 05:31:59.392
2025-06-29 05:31:59.397 # Obtain page size and ID of generators page:
2025-06-29 05:31:59.402 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2025-06-29 05:31:59.407 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-29 05:31:59.412 pg_size, gen_page_number = -1,-1
2025-06-29 05:31:59.417 for r in cur:
2025-06-29 05:31:59.423 pg_size=r[0]
2025-06-29 05:31:59.428 gen_page_number=r[1]
2025-06-29 05:31:59.433 # print(r[0],r[1])
2025-06-29 05:31:59.439
2025-06-29 05:31:59.449
2025-06-29 05:31:59.461 # Read gen page, convert it to hex and check whether generator values can be found there or no:
2025-06-29 05:31:59.471 # Expected result: YES for all values because DB not encrypted now.
2025-06-29 05:31:59.482 # ~~~~~~~~~~~~~~~
2025-06-29 05:31:59.491 check_page_for_readable_values(act_src.db.db_path, gen_page_number, pg_size, check_sequence_values, False, 'INIT. ')
2025-06-29 05:31:59.499
2025-06-29 05:31:59.507 act_src.expected_stdout = 'INIT. ' + SUCCESS_MSG
2025-06-29 05:31:59.514 act_src.stdout = capsys.readouterr().out
2025-06-29 05:31:59.521 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-29 05:31:59.527 act_src.reset()
2025-06-29 05:31:59.532
2025-06-29 05:31:59.538 ######################################################
2025-06-29 05:31:59.550
2025-06-29 05:31:59.558 t1=py_dt.datetime.now()
2025-06-29 05:31:59.571 d1 = t1-t1
2025-06-29 05:31:59.586 sttm = f'alter database encrypt with "{ENCRYPTION_PLUGIN}" key "{ENCRYPTION_KEY}"'
2025-06-29 05:31:59.597 try:
2025-06-29 05:31:59.605 con.execute_immediate(sttm)
2025-06-29 05:31:59.619 con.commit()
2025-06-29 05:31:59.631 except DatabaseError as e:
2025-06-29 05:31:59.643 print( e.__str__() )
2025-06-29 05:31:59.653
2025-06-29 05:31:59.664 act_src.expected_stdout = ''
2025-06-29 05:31:59.673 act_src.stdout = capsys.readouterr().out
2025-06-29 05:31:59.683 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-29 05:31:59.692 act_src.reset()
2025-06-29 05:31:59.700
2025-06-29 05:31:59.706 while True:
2025-06-29 05:31:59.716 t2=py_dt.datetime.now()
2025-06-29 05:31:59.726 d1=t2-t1
2025-06-29 05:31:59.733 if d1.seconds*1000 + d1.microseconds//1000 > MAX_WAITING_ENCR_FINISH:
2025-06-29 05:31:59.741 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-29 05:31:59.747 break
2025-06-29 05:31:59.753
2025-06-29 05:31:59.759 # Possible output:
2025-06-29 05:31:59.767 # Database not encrypted
2025-06-29 05:31:59.779 # Database encrypted, crypt thread not complete
2025-06-29 05:31:59.788 act_src.isql(switches=['-q'], input = 'show database;', combine_output = True)
2025-06-29 05:31:59.795 if 'Database encrypted' in act_src.stdout:
2025-06-29 05:31:59.801 if 'not complete' in act_src.stdout:
2025-06-29 05:31:59.807 pass
2025-06-29 05:31:59.814 else:
2025-06-29 05:31:59.823 break
2025-06-29 05:31:59.834 act_src.reset()
2025-06-29 05:31:59.844
2025-06-29 05:31:59.852 if d1.seconds*1000 + d1.microseconds//1000 <= MAX_WAITING_ENCR_FINISH:
2025-06-29 05:31:59.860 act_src.reset()
2025-06-29 05:31:59.872 act_src.gstat(switches=['-e'])
2025-06-29 05:31:59.881
2025-06-29 05:31:59.891 # Data pages: total 884803, encrypted 884803, non-crypted 0
2025-06-29 05:31:59.903 # ...
2025-06-29 05:31:59.914 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-29 05:31:59.923 for line in act_src.stdout.splitlines():
2025-06-29 05:31:59.930 if pattern.match(line.strip()):
2025-06-29 05:31:59.943 # We assume that every line finishes with number of NON-crypted pages, and this number must be 0:
2025-06-29 05:31:59.952 words = line.split()
2025-06-29 05:31:59.958 if words[-1] == '0':
2025-06-29 05:31:59.964 print(words[0] + ': expected, ' + words[-1])
2025-06-29 05:31:59.970 else:
2025-06-29 05:31:59.976 print(words[0] + ': UNEXPECTED, ' + words[-1])
2025-06-29 05:31:59.983
2025-06-29 05:31:59.991 expected_gstat_tail = """
2025-06-29 05:32:00.003 Data: expected, 0
2025-06-29 05:32:00.014 Index: expected, 0
2025-06-29 05:32:00.028 Blob: expected, 0
2025-06-29 05:32:00.040 Generator: expected, 0
2025-06-29 05:32:00.049 """
2025-06-29 05:32:00.057 act_src.expected_stdout = expected_gstat_tail
2025-06-29 05:32:00.063 act_src.stdout = capsys.readouterr().out
2025-06-29 05:32:00.069 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-29 05:32:00.075 act_src.reset()
2025-06-29 05:32:00.081
2025-06-29 05:32:00.089 else:
2025-06-29 05:32:00.097 print(f'TIMEOUT EXPIRATION: encryption took {d1.seconds*1000 + d1.microseconds//1000} ms which exceeds limit = {MAX_WAITING_ENCR_FINISH} ms.')
2025-06-29 05:32:00.109
2025-06-29 05:32:00.119 ######################################################
2025-06-29 05:32:00.129
2025-06-29 05:32:00.140 # see also core_6071_test.py:
2025-06-29 05:32:00.148 act_src.gbak(switches=['-b', '-KEYHOLDER', ENCRYPTION_HOLDER, '-crypt', ENCRYPTION_PLUGIN, act_src.db.dsn, str(tmp_fbk)])
2025-06-29 05:32:00.154 act_src.reset()
2025-06-29 05:32:00.159
2025-06-29 05:32:00.164 act_src.gbak(switches=['-rep', '-KEYHOLDER', ENCRYPTION_HOLDER, str(tmp_fbk), act_res.db.dsn ])
2025-06-29 05:32:00.169 act_src.reset()
2025-06-29 05:32:00.174
2025-06-29 05:32:00.179 act_src.gfix(switches=['-v', '-full', str(act_res.db.db_path)])
2025-06-29 05:32:00.184 act_src.reset()
2025-06-29 05:32:00.189
2025-06-29 05:32:00.194 # Read gen page in RESTORED database, convert it to hex and check whether generator values can be found there or no.
2025-06-29 05:32:00.200 # Expected result: NOT for all values because DB was encrypted.
2025-06-29 05:32:00.204 # ~~~~~~~~~~~~~~~~
2025-06-29 05:32:00.209 check_page_for_readable_values(act_res.db.db_path, gen_page_number, pg_size, check_sequence_values, True, 'FINAL. ')
2025-06-29 05:32:00.214
2025-06-29 05:32:00.219 act_src.expected_stdout = 'FINAL. ' + SUCCESS_MSG
2025-06-29 05:32:00.223 act_src.stdout = capsys.readouterr().out
2025-06-29 05:32:00.228 assert act_src.clean_stdout == act_src.clean_expected_stdout
2025-06-29 05:32:00.233 act_src.reset()
2025-06-29 05:32:00.237
2025-06-29 05:32:00.242 #< with act_src.db.connect()
2025-06-29 05:32:00.247
2025-06-29 05:32:00.251 # Final check: ensure that sequences have proper values:
2025-06-29 05:32:00.256 ##############
2025-06-29 05:32:00.261 act_res.expected_stdout = """
2025-06-29 05:32:00.265 Generator GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
2025-06-29 05:32:00.270 Generator GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
2025-06-29 05:32:00.275 Generator GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
2025-06-29 05:32:00.280 Generator GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
2025-06-29 05:32:00.284 Generator GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
2025-06-29 05:32:00.289 Generator GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
2025-06-29 05:32:00.294 Generator GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
2025-06-29 05:32:00.299 """
2025-06-29 05:32:00.303 act_res.isql(switches = ['-q'], input = 'show sequ;', combine_output = True, io_enc = locale.getpreferredencoding())
2025-06-29 05:32:00.308 > assert act_res.clean_stdout == act_res.clean_expected_stdout
2025-06-29 05:32:00.312 E assert
2025-06-29 05:32:00.317 E - Generator GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
2025-06-29 05:32:00.322 E + Generator PUBLIC.GEN_7FFFFFFF, current value: 2147483646, initial value: 2147483647, increment: 1
2025-06-29 05:32:00.332 E - Generator GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
2025-06-29 05:32:00.337 E + Generator PUBLIC.GEN_BA0BAB, current value: 12192682, initial value: 12192683, increment: 1
2025-06-29 05:32:00.348 E - Generator GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
2025-06-29 05:32:00.354 E + Generator PUBLIC.GEN_BADF00D, current value: 195948556, initial value: 195948557, increment: 1
2025-06-29 05:32:00.370 E - Generator GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
2025-06-29 05:32:00.376 E + Generator PUBLIC.GEN_C0FFEE, current value: 12648429, initial value: 12648430, increment: 1
2025-06-29 05:32:00.386 E - Generator GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
2025-06-29 05:32:00.394 E + Generator PUBLIC.GEN_CACA0, current value: 830623, initial value: 830624, increment: 1
2025-06-29 05:32:00.407 E - Generator GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
2025-06-29 05:32:00.414 E + Generator PUBLIC.GEN_DEC0DE, current value: 14598365, initial value: 14598366, increment: 1
2025-06-29 05:32:00.430 E - Generator GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
2025-06-29 05:32:00.438 E + Generator PUBLIC.GEN_DECADE, current value: 14600925, initial value: 14600926, increment: 1
2025-06-29 05:32:00.451
2025-06-29 05:32:00.458 tests/bugs/core_4524_test.py:281: AssertionError
2025-06-29 05:32:00.463 ---------------------------- Captured stdout setup -----------------------------
2025-06-29 05:32:00.469 Creating db: localhost:/var/tmp/qa_2024/test_1883/test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
2025-06-29 05:32:00.475 Creating db: localhost:/var/tmp/qa_2024/test_1883/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_1883/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
|