Jump to: output_first_mismatch    outcomes_full_history    elapsed_time_chart
Show cross-report outcomes.

Annotation type Annotation details
2 @message
assert   
  - average_record_length -- expected: LESS OR EQUALS to declared column length = 32760
  - compression_ratio_expected_msg -- expected: >= 1.0
  - data_pages_cnt: expected, within MIN_DP_COUNT_THRESHOLD=280 ... MAX_DP_COUNT_THRESHOLD=330
  + average_record_length -- UNEXPECTED: 33018 - more than declared withd = 32760
  + compression_ratio -- UNEXPECTED: 0.99 - less than 1.0 (wasted compression occurred)
  + data_pages_cnt UNEXPECTED: data_pages_cnt=632 -- out of scope: MIN_DP_COUNT_THRESHOLD=280 ... MAX_DP_COUNT_THRESHOLD=330

LOG DETAILS:

2024-06-17 12:07:28.170
2024-06-17 12:07:28.176 act = <firebird.qa.plugin.Action object at [hex]>
2024-06-17 12:07:28.181 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2024-06-17 12:07:28.186
2024-06-17 12:07:28.192 @pytest.mark.version('>=4.0')
2024-06-17 12:07:28.198 def test_1(act: Action, capsys):
2024-06-17 12:07:28.204
2024-06-17 12:07:28.210 act.gstat(switches=['-r', '-t', 'TEST', '-user', act.db.user, '-pass', act.db.password])
2024-06-17 12:07:28.215 gstat_lines = act.stdout.splitlines()
2024-06-17 12:07:28.220
2024-06-17 12:07:28.224 #for p in gstat_lines:
2024-06-17 12:07:28.229 #    print(p)
2024-06-17 12:07:28.234 #
2024-06-17 12:07:28.239 #act.expected_stdout = f"""
2024-06-17 12:07:28.244 #"""
2024-06-17 12:07:28.249 #act.stdout = capsys.readouterr().out
2024-06-17 12:07:28.254 #assert act.clean_stdout == act.clean_expected_stdout
2024-06-17 12:07:28.258
2024-06-17 12:07:28.264
2024-06-17 12:07:28.268 # Average record length: N.FF, total records: M
2024-06-17 12:07:28.273 # NB: for improved RLE value <N.FF> must be LESS OR EQUAL to the table column declared length
2024-06-17 12:07:28.277 p_average_record_length = re.compile( r'Average\s+record\s+length(:)?\s+\d+(.\d+)?' )
2024-06-17 12:07:28.282
2024-06-17 12:07:28.287 # Average unpacked length: N.FF, compression ratio: R.PP
2024-06-17 12:07:28.291 # NB: for improved RLE value <R.PP> must be 1.00 because column contrains incompressible data
2024-06-17 12:07:28.296 p_compression_ratio = re.compile( r'Average\s+unpacked\s+length(:)?\s+\d+(.\d+)?(,)?\s+compression\s+ratio:\s+\d+(.\d+)?' )
2024-06-17 12:07:28.300
2024-06-17 12:07:28.305 # Pointer pages: N, data page slots: M
2024-06-17 12:07:28.310 p_pointer_pages_data_pages_slots = re.compile( r'Pointer\s+pages(:)?\s+\d+(,)?\s+data\s+page\s+slots(:)?\s+\d+' )
2024-06-17 12:07:28.314
2024-06-17 12:07:28.319 average_record_length = compression_ratio = data_pages_cnt = -1
2024-06-17 12:07:28.324 gstat_lines = act.stdout.splitlines()
2024-06-17 12:07:28.328 for line in gstat_lines:
2024-06-17 12:07:28.332 if p_average_record_length.search(line):
2024-06-17 12:07:28.337 # 'Average record length: 32757.00, total records: 10000' --> 32757
2024-06-17 12:07:28.342 average_record_length = int(float(line.replace(',','').split()[3]))
2024-06-17 12:07:28.346 if p_compression_ratio.search(line):
2024-06-17 12:07:28.351 # 'Average unpacked length: 32766.00, compression ratio: 1.00'
2024-06-17 12:07:28.355 compression_ratio = float(line.split()[-1])
2024-06-17 12:07:28.360 if p_pointer_pages_data_pages_slots.search(line):
2024-06-17 12:07:28.366 data_pages_cnt = int(line.split()[-1])
2024-06-17 12:07:28.370
2024-06-17 12:07:28.375
2024-06-17 12:07:28.380 assert average_record_length > 0 and compression_ratio > 0 and data_pages_cnt > 0
2024-06-17 12:07:28.385
2024-06-17 12:07:28.390 avg_rec_len_expected_msg = f'average_record_length -- expected: LESS OR EQUALS to declared column length = {N_WIDT}'
2024-06-17 12:07:28.395 if average_record_length <= N_WIDT:
2024-06-17 12:07:28.400 print(avg_rec_len_expected_msg)
2024-06-17 12:07:28.406 else:
2024-06-17 12:07:28.411 print(f'average_record_length -- UNEXPECTED: {average_record_length} - more than declared withd = {N_WIDT}')
2024-06-17 12:07:28.416
2024-06-17 12:07:28.421 #-------------------------------------------------------------------------------------------
2024-06-17 12:07:28.426 compression_ratio_expected_msg = f'compression_ratio_expected_msg -- expected: >= {COMPRESSION_THRESHOLD}'
2024-06-17 12:07:28.433 if compression_ratio >= COMPRESSION_THRESHOLD:
2024-06-17 12:07:28.439 print(compression_ratio_expected_msg)
2024-06-17 12:07:28.449 else:
2024-06-17 12:07:28.463 print(f'compression_ratio -- UNEXPECTED: {compression_ratio} - less than {COMPRESSION_THRESHOLD} (wasted compression occurred)')
2024-06-17 12:07:28.473
2024-06-17 12:07:28.482 #-------------------------------------------------------------------------------------------
2024-06-17 12:07:28.488 data_pages_cnt_expected_msg = f'data_pages_cnt: expected, within {MIN_DP_COUNT_THRESHOLD=} ... {MAX_DP_COUNT_THRESHOLD=}'
2024-06-17 12:07:28.494 if data_pages_cnt >= MIN_DP_COUNT_THRESHOLD and data_pages_cnt <= MAX_DP_COUNT_THRESHOLD:
2024-06-17 12:07:28.499 print(data_pages_cnt_expected_msg)
2024-06-17 12:07:28.504 else:
2024-06-17 12:07:28.510 print(f'data_pages_cnt UNEXPECTED: {data_pages_cnt=} -- out of scope: {MIN_DP_COUNT_THRESHOLD=} ... {MAX_DP_COUNT_THRESHOLD=}')
2024-06-17 12:07:28.515
2024-06-17 12:07:28.521 act.expected_stdout = f"""
2024-06-17 12:07:28.526 {avg_rec_len_expected_msg}
2024-06-17 12:07:28.535 {compression_ratio_expected_msg}
2024-06-17 12:07:28.548 {data_pages_cnt_expected_msg}
2024-06-17 12:07:28.558 """
2024-06-17 12:07:28.566 act.stdout = capsys.readouterr().out
2024-06-17 12:07:28.575 >       assert act.clean_stdout == act.clean_expected_stdout
2024-06-17 12:07:28.582 E       assert
2024-06-17 12:07:28.590 E         - average_record_length -- expected: LESS OR EQUALS to declared column length = 32760
2024-06-17 12:07:28.597 E         - compression_ratio_expected_msg -- expected: >= 1.0
2024-06-17 12:07:28.604 E         - data_pages_cnt: expected, within MIN_DP_COUNT_THRESHOLD=280 ... MAX_DP_COUNT_THRESHOLD=330
2024-06-17 12:07:28.610 E         + average_record_length -- UNEXPECTED: 33018 - more than declared withd = 32760
2024-06-17 12:07:28.616 E         + compression_ratio -- UNEXPECTED: 0.99 - less than 1.0 (wasted compression occurred)
2024-06-17 12:07:28.622 E         + data_pages_cnt UNEXPECTED: data_pages_cnt=632 -- out of scope: MIN_DP_COUNT_THRESHOLD=280 ... MAX_DP_COUNT_THRESHOLD=330
2024-06-17 12:07:28.628
2024-06-17 12:07:28.634 tests/bugs/gh_4723_incompressible_test.py:137: AssertionError
2024-06-17 12:07:28.640 ---------------------------- Captured stdout setup -----------------------------
2024-06-17 12:07:28.646 Cached db: db-13.0-8192-None-WIN1251.fdb [page_size=8192, sql_dialect=None, charset='WIN1251'
3 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.version('>=4.0')
    def test_1(act: Action, capsys):
    
        act.gstat(switches=['-r', '-t', 'TEST', '-user', act.db.user, '-pass', act.db.password])
        gstat_lines = act.stdout.splitlines()
    
        #for p in gstat_lines:
        #    print(p)
        #
        #act.expected_stdout = f"""
        #"""
        #act.stdout = capsys.readouterr().out
        #assert act.clean_stdout == act.clean_expected_stdout
    
    
        # Average record length: N.FF, total records: M
        # NB: for improved RLE value <N.FF> must be LESS OR EQUAL to the table column declared length
        p_average_record_length = re.compile( r'Average\s+record\s+length(:)?\s+\d+(.\d+)?' )
    
        # Average unpacked length: N.FF, compression ratio: R.PP
        # NB: for improved RLE value <R.PP> must be 1.00 because column contrains incompressible data
        p_compression_ratio = re.compile( r'Average\s+unpacked\s+length(:)?\s+\d+(.\d+)?(,)?\s+compression\s+ratio:\s+\d+(.\d+)?' )
    
        # Pointer pages: N, data page slots: M
        p_pointer_pages_data_pages_slots = re.compile( r'Pointer\s+pages(:)?\s+\d+(,)?\s+data\s+page\s+slots(:)?\s+\d+' )
    
        average_record_length = compression_ratio = data_pages_cnt = -1
        gstat_lines = act.stdout.splitlines()
        for line in gstat_lines:
            if p_average_record_length.search(line):
                # 'Average record length: 32757.00, total records: 10000' --> 32757
                average_record_length = int(float(line.replace(',','').split()[3]))
            if p_compression_ratio.search(line):
                # 'Average unpacked length: 32766.00, compression ratio: 1.00'
                compression_ratio = float(line.split()[-1])
            if p_pointer_pages_data_pages_slots.search(line):
                data_pages_cnt = int(line.split()[-1])
    
    
        assert average_record_length > 0 and compression_ratio > 0 and data_pages_cnt > 0
    
        avg_rec_len_expected_msg = f'average_record_length -- expected: LESS OR EQUALS to declared column length = {N_WIDT}'
        if average_record_length <= N_WIDT:
            print(avg_rec_len_expected_msg)
        else:
            print(f'average_record_length -- UNEXPECTED: {average_record_length} - more than declared withd = {N_WIDT}')
    
        #-------------------------------------------------------------------------------------------
        compression_ratio_expected_msg = f'compression_ratio_expected_msg -- expected: >= {COMPRESSION_THRESHOLD}'
        if compression_ratio >= COMPRESSION_THRESHOLD:
            print(compression_ratio_expected_msg)
        else:
            print(f'compression_ratio -- UNEXPECTED: {compression_ratio} - less than {COMPRESSION_THRESHOLD} (wasted compression occurred)')
    
        #-------------------------------------------------------------------------------------------
        data_pages_cnt_expected_msg = f'data_pages_cnt: expected, within {MIN_DP_COUNT_THRESHOLD=} ... {MAX_DP_COUNT_THRESHOLD=}'
        if data_pages_cnt >= MIN_DP_COUNT_THRESHOLD and data_pages_cnt <= MAX_DP_COUNT_THRESHOLD:
            print(data_pages_cnt_expected_msg)
        else:
            print(f'data_pages_cnt UNEXPECTED: {data_pages_cnt=} -- out of scope: {MIN_DP_COUNT_THRESHOLD=} ... {MAX_DP_COUNT_THRESHOLD=}')
    
        act.expected_stdout = f"""
            {avg_rec_len_expected_msg}
            {compression_ratio_expected_msg}
            {data_pages_cnt_expected_msg}
        """
        act.stdout = capsys.readouterr().out
>       assert act.clean_stdout == act.clean_expected_stdout
E       assert   
E         - average_record_length -- expected: LESS OR EQUALS to declared column length = 32760
E         - compression_ratio_expected_msg -- expected: >= 1.0
E         - data_pages_cnt: expected, within MIN_DP_COUNT_THRESHOLD=280 ... MAX_DP_COUNT_THRESHOLD=330
E         + average_record_length -- UNEXPECTED: 33018 - more than declared withd = 32760
E         + compression_ratio -- UNEXPECTED: 0.99 - less than 1.0 (wasted compression occurred)
E         + data_pages_cnt UNEXPECTED: data_pages_cnt=632 -- out of scope: MIN_DP_COUNT_THRESHOLD=280 ... MAX_DP_COUNT_THRESHOLD=330

tests/bugs/gh_4723_incompressible_test.py:137: AssertionError
Full history of outcomes and elapsed time, ms:
NN SNAP_INFO CS_outcome SS_outcome CS_run_time SS_run_time CS_run_beg CS_run_end SS_run_beg SS_run_end
1 4.0.5.3109 2024.06.11 6addf F F 1883 1430 2024.06.17 08:46:25.374 2024.06.17 08:46:27.257 2024.06.17 07:47:49.213 2024.06.17 07:47:50.643

Elapsed time, ms. Chart for last 1 runs:

Last commits information (all timestamps in UTC):