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: 33019 - 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-11 08:22:40.756
2024-06-11 08:22:40.756 act = <firebird.qa.plugin.Action object at [hex]>
2024-06-11 08:22:40.756 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756     @pytest.mark.version('>=4.0')
2024-06-11 08:22:40.756     def test_1(act: Action, capsys):
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         act.gstat(switches=['-r', '-t', 'TEST', '-user', act.db.user, '-pass', act.db.password])
2024-06-11 08:22:40.756         gstat_lines = act.stdout.splitlines()
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         #for p in gstat_lines:
2024-06-11 08:22:40.756         #    print(p)
2024-06-11 08:22:40.756         #
2024-06-11 08:22:40.756         #act.expected_stdout = f"""
2024-06-11 08:22:40.756         #"""
2024-06-11 08:22:40.756         #act.stdout = capsys.readouterr().out
2024-06-11 08:22:40.756         #assert act.clean_stdout == act.clean_expected_stdout
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         # Average record length: N.FF, total records: M
2024-06-11 08:22:40.756         # NB: for improved RLE value <N.FF> must be LESS OR EQUAL to the table column declared length
2024-06-11 08:22:40.756         p_average_record_length = re.compile( r'Average\s+record\s+length(:)?\s+\d+(.\d+)?' )
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         # Average unpacked length: N.FF, compression ratio: R.PP
2024-06-11 08:22:40.756         # NB: for improved RLE value <R.PP> must be 1.00 because column contrains incompressible data
2024-06-11 08:22:40.756         p_compression_ratio = re.compile( r'Average\s+unpacked\s+length(:)?\s+\d+(.\d+)?(,)?\s+compression\s+ratio:\s+\d+(.\d+)?' )
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         # Pointer pages: N, data page slots: M
2024-06-11 08:22:40.756         p_pointer_pages_data_pages_slots = re.compile( r'Pointer\s+pages(:)?\s+\d+(,)?\s+data\s+page\s+slots(:)?\s+\d+' )
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         average_record_length = compression_ratio = data_pages_cnt = -1
2024-06-11 08:22:40.756         gstat_lines = act.stdout.splitlines()
2024-06-11 08:22:40.756         for line in gstat_lines:
2024-06-11 08:22:40.756             if p_average_record_length.search(line):
2024-06-11 08:22:40.756                 # 'Average record length: 32757.00, total records: 10000' --> 32757
2024-06-11 08:22:40.756                 average_record_length = int(float(line.replace(',','').split()[3]))
2024-06-11 08:22:40.756             if p_compression_ratio.search(line):
2024-06-11 08:22:40.756                 # 'Average unpacked length: 32766.00, compression ratio: 1.00'
2024-06-11 08:22:40.756                 compression_ratio = float(line.split()[-1])
2024-06-11 08:22:40.756             if p_pointer_pages_data_pages_slots.search(line):
2024-06-11 08:22:40.756                 data_pages_cnt = int(line.split()[-1])
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         assert average_record_length > 0 and compression_ratio > 0 and data_pages_cnt > 0
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         avg_rec_len_expected_msg = f'average_record_length -- expected: LESS OR EQUALS to declared column length = {N_WIDT}'
2024-06-11 08:22:40.756         if average_record_length <= N_WIDT:
2024-06-11 08:22:40.756             print(avg_rec_len_expected_msg)
2024-06-11 08:22:40.756         else:
2024-06-11 08:22:40.756             print(f'average_record_length -- UNEXPECTED: {average_record_length} - more than declared withd = {N_WIDT}')
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         #-------------------------------------------------------------------------------------------
2024-06-11 08:22:40.756         compression_ratio_expected_msg = f'compression_ratio_expected_msg -- expected: >= {COMPRESSION_THRESHOLD}'
2024-06-11 08:22:40.756         if compression_ratio >= COMPRESSION_THRESHOLD:
2024-06-11 08:22:40.756             print(compression_ratio_expected_msg)
2024-06-11 08:22:40.756         else:
2024-06-11 08:22:40.756             print(f'compression_ratio -- UNEXPECTED: {compression_ratio} - less than {COMPRESSION_THRESHOLD} (wasted compression occurred)')
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         #-------------------------------------------------------------------------------------------
2024-06-11 08:22:40.756         data_pages_cnt_expected_msg = f'data_pages_cnt: expected, within {MIN_DP_COUNT_THRESHOLD=} ... {MAX_DP_COUNT_THRESHOLD=}'
2024-06-11 08:22:40.756         if data_pages_cnt >= MIN_DP_COUNT_THRESHOLD and data_pages_cnt <= MAX_DP_COUNT_THRESHOLD:
2024-06-11 08:22:40.756             print(data_pages_cnt_expected_msg)
2024-06-11 08:22:40.756         else:
2024-06-11 08:22:40.756             print(f'data_pages_cnt UNEXPECTED: {data_pages_cnt=} -- out of scope: {MIN_DP_COUNT_THRESHOLD=} ... {MAX_DP_COUNT_THRESHOLD=}')
2024-06-11 08:22:40.756
2024-06-11 08:22:40.756         act.expected_stdout = f"""
2024-06-11 08:22:40.756             {avg_rec_len_expected_msg}
2024-06-11 08:22:40.756             {compression_ratio_expected_msg}
2024-06-11 08:22:40.756             {data_pages_cnt_expected_msg}
2024-06-11 08:22:40.756         """
2024-06-11 08:22:40.756         act.stdout = capsys.readouterr().out
2024-06-11 08:22:40.756 >       assert act.clean_stdout == act.clean_expected_stdout
2024-06-11 08:22:40.756 E       assert
2024-06-11 08:22:40.756 E         - average_record_length -- expected: LESS OR EQUALS to declared column length = 32760
2024-06-11 08:22:40.756 E         - compression_ratio_expected_msg -- expected: >= 1.0
2024-06-11 08:22:40.756 E         - data_pages_cnt: expected, within MIN_DP_COUNT_THRESHOLD=280 ... MAX_DP_COUNT_THRESHOLD=330
2024-06-11 08:22:40.756 E         + average_record_length -- UNEXPECTED: 33019 - more than declared withd = 32760
2024-06-11 08:22:40.756 E         + compression_ratio -- UNEXPECTED: 0.99 - less than 1.0 (wasted compression occurred)
2024-06-11 08:22:40.771 E         + data_pages_cnt UNEXPECTED: data_pages_cnt=632 -- out of scope: MIN_DP_COUNT_THRESHOLD=280 ... MAX_DP_COUNT_THRESHOLD=330
2024-06-11 08:22:40.771
2024-06-11 08:22:40.771 tests\bugs\gh_4723_incompressible_test.py:137: AssertionError
2024-06-11 08:22:40.771 ---------------------------- Captured stdout setup ----------------------------
2024-06-11 08:22:40.771 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: 33019 - 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 1856 1388 2024.06.16 09:45:57.142 2024.06.16 09:45:58.998 2024.06.16 08:52:33.984 2024.06.16 08:52:35.372
2 4.0.5.3097 2024.05.09 27fa6 F F 1922 1578 2024.06.11 05:56:15.771 2024.06.11 05:56:17.693 2024.06.11 05:08:08.047 2024.06.11 05:08:09.625

Elapsed time, ms. Chart for last 2 runs:

Last commits information (all timestamps in UTC):