Check firebird.log [no messages found for interval when this test was running]
Jump to: output_first_mismatch    outcomes_full_history    elapsed_time_chart
Show cross-report outcomes.

Annotation type Annotation details
2 @message
assert   
  + AT LEAST ON CASE FAILED:
  + * echo_mode= no_echo
  + * autot_mode= -autot_switch
  + * call_mode= via_input
  + * lstrip_txt >>> 
  + -- foo
  + select unknown_column from rdb$database; <<<
  + * expect_txt >>> 
  +             Statement failed, SQLSTATE = 42S22
  +             Dynamic SQL Error
  +             -SQL error code = -206
  +             -Column unknown
  +             -UNKNOWN_COLUMN
  +          <<<
  + * expect_lst >>> ['#Statement failed, SQLSTATE = 42S22', '#Dynamic SQL Error', '#-SQL error code = -206', '#-Column unknown', '#-UNKNOWN_COLUMN'] <<<
  + * actual_lst >>> ['#Statement failed, SQLSTATE = 42S22', '#Dynamic SQL Error', '#-SQL error code = -206', '#-Column unknown', '#-"UNKNOWN_COLUMN"'] <<<
  + * number of differences: 8
  + --- 
  + 
  + +++ 
  + 
  + @@ -2,4 +2,4 @@
  + 
  +  #Dynamic SQL Error
  +  #-SQL error code = -206
  +  #-Column unknown
  + -#-UNKNOWN_COLUMN
  + +#-"UNKNOWN_COLUMN"

LOG DETAILS:

2025-07-01 05:55:36.909
2025-07-01 05:55:36.915 act = <firebird.qa.plugin.Action object at [hex]>
2025-07-01 05:55:36.921 tmp_sql = PosixPath('/var/tmp/qa_2024/test_11909/tmp_autoterm.sql')
2025-07-01 05:55:36.927 tmp_log = PosixPath('/var/tmp/qa_2024/test_11909/tmp_autoterm.log')
2025-07-01 05:55:36.935 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-07-01 05:55:36.945
2025-07-01 05:55:36.951 @pytest.mark.version('>=6.0')
2025-07-01 05:55:36.957 def test_1(act: Action, tmp_sql: Path, tmp_log: Path, capsys):
2025-07-01 05:55:36.963
2025-07-01 05:55:36.969 # K = query; V = expected_out
2025-07-01 05:55:36.974 test_dict = {
2025-07-01 05:55:36.981 """
2025-07-01 05:55:36.987 /*set term*; execute block as begin end**/
2025-07-01 05:55:36.993 """
2025-07-01 05:55:36.998 :
2025-07-01 05:55:37.002 """
2025-07-01 05:55:37.007 """
2025-07-01 05:55:37.021 , ###############################################
2025-07-01 05:55:37.032 """
2025-07-01 05:55:37.044 execute block as
2025-07-01 05:55:37.052 begin
2025-07-01 05:55:37.059 end;
2025-07-01 05:55:37.067
2025-07-01 05:55:37.078 execute block as
2025-07-01 05:55:37.086 begin
2025-07-01 05:55:37.093 end;
2025-07-01 05:55:37.099 """
2025-07-01 05:55:37.104 :
2025-07-01 05:55:37.110 """
2025-07-01 05:55:37.115 """
2025-07-01 05:55:37.122 , ###############################################
2025-07-01 05:55:37.129 # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825231225
2025-07-01 05:55:37.136
2025-07-01 05:55:37.141 """
2025-07-01 05:55:37.147 -- q;w;e
2025-07-01 05:55:37.152 """
2025-07-01 05:55:37.157 :
2025-07-01 05:55:37.163 """
2025-07-01 05:55:37.169 """
2025-07-01 05:55:37.174 , ###############################################
2025-07-01 05:55:37.179 # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825231225
2025-07-01 05:55:37.183 """
2025-07-01 05:55:37.188 -- q;w;e;
2025-07-01 05:55:37.192 """
2025-07-01 05:55:37.198 :
2025-07-01 05:55:37.203 """
2025-07-01 05:55:37.208 """
2025-07-01 05:55:37.214 , ###############################################
2025-07-01 05:55:37.220 # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825446834
2025-07-01 05:55:37.226 """
2025-07-01 05:55:37.236 -- foo
2025-07-01 05:55:37.245 select unknown_column from rdb$database;
2025-07-01 05:55:37.253 """
2025-07-01 05:55:37.259 :
2025-07-01 05:55:37.266 """
2025-07-01 05:55:37.272 Statement failed, SQLSTATE = 42S22
2025-07-01 05:55:37.279 Dynamic SQL Error
2025-07-01 05:55:37.286 -SQL error code = -206
2025-07-01 05:55:37.298 -Column unknown
2025-07-01 05:55:37.305 -UNKNOWN_COLUMN
2025-07-01 05:55:37.312 """
2025-07-01 05:55:37.318 , ###############################################
2025-07-01 05:55:37.323 # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825452390
2025-07-01 05:55:37.329 """
2025-07-01 05:55:37.336 /* x
2025-07-01 05:55:37.344 --> */
2025-07-01 05:55:37.352 """
2025-07-01 05:55:37.364 :
2025-07-01 05:55:37.376 """
2025-07-01 05:55:37.386 """
2025-07-01 05:55:37.396
2025-07-01 05:55:37.409 , ###############################################
2025-07-01 05:55:37.421 # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1826352683
2025-07-01 05:55:37.432 """
2025-07-01 05:55:37.441 set term ^;
2025-07-01 05:55:37.448 execute block as
2025-07-01 05:55:37.455 begin
2025-07-01 05:55:37.462 end
2025-07-01 05:55:37.468 ^^
2025-07-01 05:55:37.474 set term ;^
2025-07-01 05:55:37.483 """
2025-07-01 05:55:37.491 :
2025-07-01 05:55:37.497 """
2025-07-01 05:55:37.503 """
2025-07-01 05:55:37.510 , ###############################################
2025-07-01 05:55:37.521 # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1826361804
2025-07-01 05:55:37.530 """
2025-07-01 05:55:37.538 set term ^;
2025-07-01 05:55:37.549 execute block as
2025-07-01 05:55:37.557 begin
2025-07-01 05:55:37.564 end
2025-07-01 05:55:37.571 ^
2025-07-01 05:55:37.578 set term ^;
2025-07-01 05:55:37.588 """
2025-07-01 05:55:37.597 :
2025-07-01 05:55:37.604 """
2025-07-01 05:55:37.611 """
2025-07-01 05:55:37.617 , ###############################################
2025-07-01 05:55:37.624 # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1826254181
2025-07-01 05:55:37.630 """
2025-07-01 05:55:37.635 ;;
2025-07-01 05:55:37.641 """
2025-07-01 05:55:37.646 :
2025-07-01 05:55:37.656 """
2025-07-01 05:55:37.667 """
2025-07-01 05:55:37.680 , ###############################################
2025-07-01 05:55:37.694 # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825592875
2025-07-01 05:55:37.706 """
2025-07-01 05:55:37.717 execute block as
2025-07-01 05:55:37.730 declare n int;
2025-07-01 05:55:37.742 begin
2025-07-01 05:55:37.750 /*
2025-07-01 05:55:37.758 */
2025-07-01 05:55:37.768
2025-07-01 05:55:37.776 /*
2025-07-01 05:55:37.784 1
2025-07-01 05:55:37.792 */
2025-07-01 05:55:37.798
2025-07-01 05:55:37.807 /*
2025-07-01 05:55:37.818 1
2025-07-01 05:55:37.824 2
2025-07-01 05:55:37.829 3
2025-07-01 05:55:37.835 */
2025-07-01 05:55:37.847
2025-07-01 05:55:37.857 /*
2025-07-01 05:55:37.865 1
2025-07-01 05:55:37.870 2
2025-07-01 05:55:37.876 3
2025-07-01 05:55:37.881 4
2025-07-01 05:55:37.887 */
2025-07-01 05:55:37.895 end;
2025-07-01 05:55:37.906 """
2025-07-01 05:55:37.915 :
2025-07-01 05:55:37.921 """
2025-07-01 05:55:37.927 """
2025-07-01 05:55:37.933 , ###############################################
2025-07-01 05:55:37.945 """
2025-07-01 05:55:37.955 /* multi-line comment without semicolon, number of rows = 1 */
2025-07-01 05:55:37.961 """
2025-07-01 05:55:37.967 :
2025-07-01 05:55:37.973 """
2025-07-01 05:55:37.979 """
2025-07-01 05:55:37.985 , ###############################################
2025-07-01 05:55:37.991 """
2025-07-01 05:55:37.997 /* multi-line comment
2025-07-01 05:55:38.003 without semicolon,
2025-07-01 05:55:38.009 number of rows > 1 */
2025-07-01 05:55:38.021 """
2025-07-01 05:55:38.030 :
2025-07-01 05:55:38.037 """
2025-07-01 05:55:38.043 """
2025-07-01 05:55:38.048 , ###############################################
2025-07-01 05:55:38.053 """
2025-07-01 05:55:38.063 -- single-line comment without semicolon, trivial.
2025-07-01 05:55:38.069 """
2025-07-01 05:55:38.075 :
2025-07-01 05:55:38.081 """
2025-07-01 05:55:38.086 """
2025-07-01 05:55:38.091 , ###############################################
2025-07-01 05:55:38.096 """
2025-07-01 05:55:38.101 -- single-line comment without semicolon but with multi-lined incompleted comment: /* foo
2025-07-01 05:55:38.106 """
2025-07-01 05:55:38.111 :
2025-07-01 05:55:38.116 """
2025-07-01 05:55:38.122 """
2025-07-01 05:55:38.131 , ###############################################
2025-07-01 05:55:38.140
2025-07-01 05:55:38.149 """
2025-07-01 05:55:38.156 -- single-line comment without semicolon but with multi-lined comment included: /* bar */
2025-07-01 05:55:38.161 """
2025-07-01 05:55:38.166 :
2025-07-01 05:55:38.172 """
2025-07-01 05:55:38.177 """
2025-07-01 05:55:38.182 }
2025-07-01 05:55:38.188
2025-07-01 05:55:38.194 # For each K from test_dict we check output:
2025-07-01 05:55:38.200 #     1. call_mode = 'via_input' ==> script <K> is saved in .sql which is further called by ISQL with '-input <script.sql>' and:
2025-07-01 05:55:38.206 #         1.1) with command switch '-autot'
2025-07-01 05:55:38.212 #         1.2) without '-autot' but with addiing 'set autoterm;' in this script before ISQL run
2025-07-01 05:55:38.218 #     2. call_mode = 'using_pipe' ==> script <K> is also saved in .sql and we use PIPE, i.e. 'cat <script> | isql ...' and isql is used:
2025-07-01 05:55:38.224 #         2.1) with command switch '-autot' // see: autot_mode = '-autot_switch'
2025-07-01 05:55:38.230 #         2.2) without '-autot' but with addiing 'set autoterm;' in this script before ISQL run // see: autot_mode = 'set_autot'
2025-07-01 05:55:38.237 # We have to REPEAT all these cases THREE times:
2025-07-01 05:55:38.244 #     A. When neither 'set echo on' nor '-echo' commands present (i.e. script is executed 'silently');
2025-07-01 05:55:38.252 #     B. When ISQL is called with '-echo' command switch // see: autot_mode = '-autot_switch'
2025-07-01 05:55:38.263 #     C. When script contain 'set echo on;' command // see: autot_mode = 'set_autot'
2025-07-01 05:55:38.272
2025-07-01 05:55:38.278 subst_pairs_lst = [ ('(-)?At line \\d+.*', ''), ]
2025-07-01 05:55:38.284 brk_flag = 0
2025-07-01 05:55:38.290
2025-07-01 05:55:38.296 for echo_mode in ('no_echo', '-echo_switch', 'set_echo_on'):
2025-07-01 05:55:38.302
2025-07-01 05:55:38.308 if brk_flag:
2025-07-01 05:55:38.314 break
2025-07-01 05:55:38.320 for k, v in test_dict.items():
2025-07-01 05:55:38.326 if brk_flag:
2025-07-01 05:55:38.331 break
2025-07-01 05:55:38.337
2025-07-01 05:55:38.343 min_indent = min([len(x) - len(x.lstrip()) for x in k.splitlines() if x.strip()])
2025-07-01 05:55:38.349 lstrip_txt = '\n'.join( [x[min_indent:] for x in k.rstrip().splitlines()] )
2025-07-01 05:55:38.355
2025-07-01 05:55:38.362 for autot_mode in ('-autot_switch', 'set_autot'):
2025-07-01 05:55:38.367
2025-07-01 05:55:38.374 if brk_flag:
2025-07-01 05:55:38.380 break
2025-07-01 05:55:38.386
2025-07-01 05:55:38.392 if echo_mode == 'no_echo':
2025-07-01 05:55:38.398 expect_txt = v
2025-07-01 05:55:38.404 else:
2025-07-01 05:55:38.410 expect_txt = '\n'.join( (lstrip_txt, v.lstrip()) )
2025-07-01 05:55:38.416 if autot_mode == 'set_autot':
2025-07-01 05:55:38.422 expect_txt = '\n'.join( ( 'set autoterm on;', expect_txt.lstrip() ) )
2025-07-01 05:55:38.428
2025-07-01 05:55:38.436 expect_lst = [''.join( (STARTING_SPACE_REPLACEMENT, x.strip()) ) for x in expect_txt.strip().splitlines()] # ['#', '#1......', '#', '#', '#2....']
2025-07-01 05:55:38.442
2025-07-01 05:55:38.448 for call_mode in ('via_input', 'using_pipe'):
2025-07-01 05:55:38.454
2025-07-01 05:55:38.459 if brk_flag:
2025-07-01 05:55:38.465 break
2025-07-01 05:55:38.471
2025-07-01 05:55:38.477 with open(tmp_sql, 'w') as f:
2025-07-01 05:55:38.482 if echo_mode == 'set_echo_on':
2025-07-01 05:55:38.488 f.write('set echo on;\n')
2025-07-01 05:55:38.494 if autot_mode == 'set_autot':
2025-07-01 05:55:38.500 f.write('set autoterm on;\n')
2025-07-01 05:55:38.506
2025-07-01 05:55:38.512 f.write(lstrip_txt.strip())
2025-07-01 05:55:38.517
2025-07-01 05:55:38.524 # we run script using 'isql -in <script.sql>'
2025-07-01 05:55:38.530 # Instead of act.isql() we use here subprocess.run() and redirect output to log file.
2025-07-01 05:55:38.536 with open(tmp_log, 'w') as g:
2025-07-01 05:55:38.542 isql_params = [
2025-07-01 05:55:38.548 act.vars['isql']
2025-07-01 05:55:38.554 ,'-q'
2025-07-01 05:55:38.560 ,'-user', act.db.user
2025-07-01 05:55:38.566 ,'-password', act.db.password
2025-07-01 05:55:38.572 ,act.db.dsn
2025-07-01 05:55:38.578 ]
2025-07-01 05:55:38.584
2025-07-01 05:55:38.590 if echo_mode == '-echo_switch':
2025-07-01 05:55:38.596 isql_params.extend(['-echo'])
2025-07-01 05:55:38.602
2025-07-01 05:55:38.607 if autot_mode == '-autot_switch':
2025-07-01 05:55:38.613 isql_params.extend(['-autot'])
2025-07-01 05:55:38.619
2025-07-01 05:55:38.625 if call_mode == 'via_input':
2025-07-01 05:55:38.630 isql_params.extend(['-input', str(tmp_sql)])
2025-07-01 05:55:38.636 subprocess.run( isql_params
2025-07-01 05:55:38.642 ,stdout = g
2025-07-01 05:55:38.649 ,stderr = subprocess.STDOUT
2025-07-01 05:55:38.663 )
2025-07-01 05:55:38.672 else:
2025-07-01 05:55:38.679 subprocess.run( isql_params
2025-07-01 05:55:38.684 ,input = str.encode(tmp_sql.read_text())
2025-07-01 05:55:38.689 ,stdout = g
2025-07-01 05:55:38.694 ,stderr = subprocess.STDOUT
2025-07-01 05:55:38.700 )
2025-07-01 05:55:38.705
2025-07-01 05:55:38.711
2025-07-01 05:55:38.716 with open(tmp_log, 'r') as g:
2025-07-01 05:55:38.722 actual_txt = g.read().strip()
2025-07-01 05:55:38.728
2025-07-01 05:55:38.735 actual_lst = []
2025-07-01 05:55:38.743 for x in actual_txt.splitlines():
2025-07-01 05:55:38.749 if not x.strip():
2025-07-01 05:55:38.757 actual_lst.append( ''.join( (STARTING_SPACE_REPLACEMENT, x) ) )
2025-07-01 05:55:38.764 else:
2025-07-01 05:55:38.771 for sub_pair in subst_pairs_lst:
2025-07-01 05:55:38.777 # sub_pair: ('(-)?At line \\d+.*', '')
2025-07-01 05:55:38.783 x = re.sub( sub_pair[0], sub_pair[1], x ).strip()
2025-07-01 05:55:38.789 if x:
2025-07-01 05:55:38.794 actual_lst.append( ''.join( (STARTING_SPACE_REPLACEMENT, x) ) )
2025-07-01 05:55:38.800
2025-07-01 05:55:38.806 if len([p for p in unified_diff(expect_lst, actual_lst)]):
2025-07-01 05:55:38.813 print('AT LEAST ON CASE FAILED:')
2025-07-01 05:55:38.819 print('* echo_mode=',echo_mode)
2025-07-01 05:55:38.825 print('* autot_mode=',autot_mode)
2025-07-01 05:55:38.831 print('* call_mode=',call_mode)
2025-07-01 05:55:38.837 print('* lstrip_txt >>>',lstrip_txt,'<<<')
2025-07-01 05:55:38.844 print('* expect_txt >>>',expect_txt,'<<<')
2025-07-01 05:55:38.850 print('* expect_lst >>>',expect_lst,'<<<')
2025-07-01 05:55:38.857 print('* actual_lst >>>',actual_lst,'<<<')
2025-07-01 05:55:38.863 print('* number of differences:',len([p for p in unified_diff(expect_lst, actual_lst)]))
2025-07-01 05:55:38.870
2025-07-01 05:55:38.877 for p in unified_diff(expect_lst, actual_lst):
2025-07-01 05:55:38.885 print(p)
2025-07-01 05:55:38.891 brk_flag = 1
2025-07-01 05:55:38.896
2025-07-01 05:55:38.905 break
2025-07-01 05:55:38.915
2025-07-01 05:55:38.922 else:
2025-07-01 05:55:38.929 # we run script using PIPE mechanism
2025-07-01 05:55:38.936 pass
2025-07-01 05:55:38.942
2025-07-01 05:55:38.949 act.expected_stdout = ''
2025-07-01 05:55:38.954 act.stdout = capsys.readouterr().out
2025-07-01 05:55:38.960 >       assert act.stdout == act.expected_stdout
2025-07-01 05:55:38.966 E       assert
2025-07-01 05:55:38.972 E         + AT LEAST ON CASE FAILED:
2025-07-01 05:55:38.977 E         + * echo_mode= no_echo
2025-07-01 05:55:38.983 E         + * autot_mode= -autot_switch
2025-07-01 05:55:38.989 E         + * call_mode= via_input
2025-07-01 05:55:38.995 E         + * lstrip_txt >>>
2025-07-01 05:55:39.005 E         + -- foo
2025-07-01 05:55:39.017 E         + select unknown_column from rdb$database; <<<
2025-07-01 05:55:39.026 E         + * expect_txt >>>
2025-07-01 05:55:39.033 E         +             Statement failed, SQLSTATE = 42S22
2025-07-01 05:55:39.039 E         +             Dynamic SQL Error
2025-07-01 05:55:39.045 E         +             -SQL error code = -206
2025-07-01 05:55:39.051 E         +             -Column unknown
2025-07-01 05:55:39.056 E         +             -UNKNOWN_COLUMN
2025-07-01 05:55:39.062 E         +          <<<
2025-07-01 05:55:39.069 E         + * expect_lst >>> ['#Statement failed, SQLSTATE = 42S22', '#Dynamic SQL Error', '#-SQL error code = -206', '#-Column unknown', '#-UNKNOWN_COLUMN'] <<<
2025-07-01 05:55:39.076 E         + * actual_lst >>> ['#Statement failed, SQLSTATE = 42S22', '#Dynamic SQL Error', '#-SQL error code = -206', '#-Column unknown', '#-"UNKNOWN_COLUMN"'] <<<
2025-07-01 05:55:39.082 E         + * number of differences: 8
2025-07-01 05:55:39.088 E         + ---
2025-07-01 05:55:39.093 E         +
2025-07-01 05:55:39.099 E         + +++
2025-07-01 05:55:39.105 E         +
2025-07-01 05:55:39.110 E         + @@ -2,4 +2,4 @@
2025-07-01 05:55:39.116 E         +
2025-07-01 05:55:39.120 E         +  #Dynamic SQL Error
2025-07-01 05:55:39.125 E         +  #-SQL error code = -206
2025-07-01 05:55:39.132 E         +  #-Column unknown
2025-07-01 05:55:39.138 E         + -#-UNKNOWN_COLUMN
2025-07-01 05:55:39.144 E         + +#-"UNKNOWN_COLUMN"
2025-07-01 05:55:39.150
2025-07-01 05:55:39.158 tests/functional/basic/isql/test_autoterm_03.py:337: AssertionError
2025-07-01 05:55:39.166 ---------------------------- Captured stdout setup -----------------------------
2025-07-01 05:55:39.173 Creating db: localhost:/var/tmp/qa_2024/test_11909/test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
3 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
tmp_sql = PosixPath('/var/tmp/qa_2024/test_11909/tmp_autoterm.sql')
tmp_log = PosixPath('/var/tmp/qa_2024/test_11909/tmp_autoterm.log')
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.version('>=6.0')
    def test_1(act: Action, tmp_sql: Path, tmp_log: Path, capsys):
    
        # K = query; V = expected_out
        test_dict = {
            """
                /*set term*; execute block as begin end**/
            """
            :
            """
            """
            , ###############################################
            """
                execute block as
                begin
                end;
    
                execute block as
                begin
                end;
            """
            :
            """
            """
            , ###############################################
              # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825231225
    
            """
                -- q;w;e
            """
            :
            """
            """
            , ###############################################
              # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825231225
            """
                -- q;w;e;
            """
            :
            """
            """
            , ###############################################
              # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825446834
            """
                -- foo
                select unknown_column from rdb$database;
            """
            :
            """
                Statement failed, SQLSTATE = 42S22
                Dynamic SQL Error
                -SQL error code = -206
                -Column unknown
                -UNKNOWN_COLUMN
            """
            , ###############################################
              # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825452390
            """
                /* x
                --> */
            """
            :
            """
            """
    
            , ###############################################
              # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1826352683
            """
                set term ^;
                execute block as
                begin
                end
                ^^
                set term ;^
            """
            :
            """
            """
            , ###############################################
              # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1826361804
            """
                set term ^;
                execute block as
                begin
                end
                ^
                set term ^;
            """
            :
            """
            """
            , ###############################################
              # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1826254181
            """
                ;;
            """
            :
            """
            """
            , ###############################################
              # https://github.com/FirebirdSQL/firebird/pull/7868#issuecomment-1825592875
            """
                execute block as
                    declare n int;
                begin
                    /*
                    */
    
                    /*
                    1
                    */
    
                    /*
                    1
                    2
                    3
                    */
    
                    /*
                    1
                    2
                    3
                    4
                    */
                end;
            """
            :
            """
            """
            , ###############################################
            """
              /* multi-line comment without semicolon, number of rows = 1 */
            """
            :
            """
            """
            , ###############################################
            """
              /* multi-line comment
              without semicolon,
              number of rows > 1 */
            """
            :
            """
            """
            , ###############################################
            """
              -- single-line comment without semicolon, trivial.
            """
            :
            """
            """
            , ###############################################
            """
              -- single-line comment without semicolon but with multi-lined incompleted comment: /* foo
            """
            :
            """
            """
            , ###############################################
    
            """
              -- single-line comment without semicolon but with multi-lined comment included: /* bar */
            """
            :
            """
            """
        }
    
        # For each K from test_dict we check output:
        #     1. call_mode = 'via_input' ==> script <K> is saved in .sql which is further called by ISQL with '-input <script.sql>' and:
        #         1.1) with command switch '-autot'
        #         1.2) without '-autot' but with addiing 'set autoterm;' in this script before ISQL run
        #     2. call_mode = 'using_pipe' ==> script <K> is also saved in .sql and we use PIPE, i.e. 'cat <script> | isql ...' and isql is used:
        #         2.1) with command switch '-autot' // see: autot_mode = '-autot_switch'
        #         2.2) without '-autot' but with addiing 'set autoterm;' in this script before ISQL run // see: autot_mode = 'set_autot'
        # We have to REPEAT all these cases THREE times:
        #     A. When neither 'set echo on' nor '-echo' commands present (i.e. script is executed 'silently');
        #     B. When ISQL is called with '-echo' command switch // see: autot_mode = '-autot_switch'
        #     C. When script contain 'set echo on;' command // see: autot_mode = 'set_autot'
    
        subst_pairs_lst = [ ('(-)?At line \\d+.*', ''), ]
        brk_flag = 0
    
        for echo_mode in ('no_echo', '-echo_switch', 'set_echo_on'):
    
            if brk_flag:
                break
            for k, v in test_dict.items():
                if brk_flag:
                    break
    
                min_indent = min([len(x) - len(x.lstrip()) for x in k.splitlines() if x.strip()])
                lstrip_txt = '\n'.join( [x[min_indent:] for x in k.rstrip().splitlines()] )
    
                for autot_mode in ('-autot_switch', 'set_autot'):
    
                    if brk_flag:
                        break
    
                    if echo_mode == 'no_echo':
                        expect_txt = v
                    else:
                        expect_txt = '\n'.join( (lstrip_txt, v.lstrip()) )
                        if autot_mode == 'set_autot':
                            expect_txt = '\n'.join( ( 'set autoterm on;', expect_txt.lstrip() ) )
    
                    expect_lst = [''.join( (STARTING_SPACE_REPLACEMENT, x.strip()) ) for x in expect_txt.strip().splitlines()] # ['#', '#1......', '#', '#', '#2....']
    
                    for call_mode in ('via_input', 'using_pipe'):
    
                        if brk_flag:
                            break
    
                        with open(tmp_sql, 'w') as f:
                             if echo_mode == 'set_echo_on':
                                 f.write('set echo on;\n')
                             if autot_mode == 'set_autot':
                                 f.write('set autoterm on;\n')
    
                             f.write(lstrip_txt.strip())
    
                        # we run script using 'isql -in <script.sql>'
                        # Instead of act.isql() we use here subprocess.run() and redirect output to log file.
                        with open(tmp_log, 'w') as g:
                            isql_params = [
                                act.vars['isql']
                               ,'-q'
                               ,'-user', act.db.user
                               ,'-password', act.db.password
                               ,act.db.dsn
                            ]
    
                            if echo_mode == '-echo_switch':
                                isql_params.extend(['-echo'])
    
                            if autot_mode == '-autot_switch':
                                isql_params.extend(['-autot'])
    
                            if call_mode == 'via_input':
                                isql_params.extend(['-input', str(tmp_sql)])
                                subprocess.run( isql_params
                                                ,stdout = g
                                                ,stderr = subprocess.STDOUT
                                              )
                            else:
                                subprocess.run( isql_params
                                                ,input = str.encode(tmp_sql.read_text())
                                                ,stdout = g
                                                ,stderr = subprocess.STDOUT
                                              )
    
    
                        with open(tmp_log, 'r') as g:
                            actual_txt = g.read().strip()
    
                        actual_lst = []
                        for x in actual_txt.splitlines():
                            if not x.strip():
                                actual_lst.append( ''.join( (STARTING_SPACE_REPLACEMENT, x) ) )
                            else:
                                for sub_pair in subst_pairs_lst:
                                    # sub_pair: ('(-)?At line \\d+.*', '')
                                    x = re.sub( sub_pair[0], sub_pair[1], x ).strip()
                                    if x:
                                        actual_lst.append( ''.join( (STARTING_SPACE_REPLACEMENT, x) ) )
    
                        if len([p for p in unified_diff(expect_lst, actual_lst)]):
                            print('AT LEAST ON CASE FAILED:')
                            print('* echo_mode=',echo_mode)
                            print('* autot_mode=',autot_mode)
                            print('* call_mode=',call_mode)
                            print('* lstrip_txt >>>',lstrip_txt,'<<<')
                            print('* expect_txt >>>',expect_txt,'<<<')
                            print('* expect_lst >>>',expect_lst,'<<<')
                            print('* actual_lst >>>',actual_lst,'<<<')
                            print('* number of differences:',len([p for p in unified_diff(expect_lst, actual_lst)]))
    
                            for p in unified_diff(expect_lst, actual_lst):
                                print(p)
                            brk_flag = 1
    
                            break
    
                    else:
                       # we run script using PIPE mechanism
                       pass
    
        act.expected_stdout = ''
        act.stdout = capsys.readouterr().out
>       assert act.stdout == act.expected_stdout
E       assert   
E         + AT LEAST ON CASE FAILED:
E         + * echo_mode= no_echo
E         + * autot_mode= -autot_switch
E         + * call_mode= via_input
E         + * lstrip_txt >>> 
E         + -- foo
E         + select unknown_column from rdb$database; <<<
E         + * expect_txt >>> 
E         +             Statement failed, SQLSTATE = 42S22
E         +             Dynamic SQL Error
E         +             -SQL error code = -206
E         +             -Column unknown
E         +             -UNKNOWN_COLUMN
E         +          <<<
E         + * expect_lst >>> ['#Statement failed, SQLSTATE = 42S22', '#Dynamic SQL Error', '#-SQL error code = -206', '#-Column unknown', '#-UNKNOWN_COLUMN'] <<<
E         + * actual_lst >>> ['#Statement failed, SQLSTATE = 42S22', '#Dynamic SQL Error', '#-SQL error code = -206', '#-Column unknown', '#-"UNKNOWN_COLUMN"'] <<<
E         + * number of differences: 8
E         + --- 
E         + 
E         + +++ 
E         + 
E         + @@ -2,4 +2,4 @@
E         + 
E         +  #Dynamic SQL Error
E         +  #-SQL error code = -206
E         +  #-Column unknown
E         + -#-UNKNOWN_COLUMN
E         + +#-"UNKNOWN_COLUMN"

tests/functional/basic/isql/test_autoterm_03.py:337: 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 6.0.0.889 2025.07.01 969ac F F 3428 2498 2025.07.02 02:19:17.666 2025.07.02 02:19:21.094 2025.07.01 23:28:43.348 2025.07.01 23:28:45.846
2 6.0.0.884 2025.06.30 f7e5f F F 3365 2633 2025.07.01 02:19:16.446 2025.07.01 02:19:19.811 2025.06.30 23:38:35.794 2025.06.30 23:38:38.427
3 6.0.0.881 2025.06.27 7035d F F 3480 2305 2025.06.30 02:09:54.475 2025.06.30 02:09:57.955 2025.06.29 23:25:36.171 2025.06.29 23:25:38.476
4 6.0.0.877 2025.06.26 8e38f F F 3449 2478 2025.06.27 01:48:27.771 2025.06.27 01:48:31.220 2025.06.26 23:16:17.186 2025.06.26 23:16:19.664
5 6.0.0.876 2025.06.25 b1bec F F 3282 1910 2025.06.26 01:52:19.489 2025.06.26 01:52:22.771 2025.06.25 23:18:04.600 2025.06.25 23:18:06.510
6 6.0.0.863 2025.06.24 c3c20 F F 3416 1866 2025.06.25 01:52:39.822 2025.06.25 01:52:43.238 2025.06.24 23:17:43.879 2025.06.24 23:17:45.745
7 6.0.0.858 2025.06.23 8d6f7 F F 3337 1932 2025.06.24 01:53:02.373 2025.06.24 01:53:05.710 2025.06.23 23:17:52.918 2025.06.23 23:17:54.850
8 6.0.0.849 2025.06.20 7b79c F F 3425 2648 2025.06.21 02:04:35.452 2025.06.21 02:04:38.877 2025.06.20 23:26:39.878 2025.06.20 23:26:42.526
9 6.0.0.848 2025.06.19 c483c F F 3242 2530 2025.06.20 02:00:56.616 2025.06.20 02:00:59.858 2025.06.19 23:23:31.444 2025.06.19 23:23:33.974
10 6.0.0.845 2025.06.18 22b12 F F 3186 1974 2025.06.19 02:09:36.728 2025.06.19 02:09:39.914 2025.06.18 23:26:57.730 2025.06.18 23:26:59.704
11 6.0.0.843 2025.06.16 995f4 F F 3265 2750 2025.06.18 02:07:50.558 2025.06.18 02:07:53.823 2025.06.17 23:28:46.315 2025.06.17 23:28:49.065
12 6.0.0.840 2025.06.14 29bca F F 3394 1919 2025.06.16 01:59:44.191 2025.06.16 01:59:47.585 2025.06.15 23:21:13.047 2025.06.15 23:21:14.966
13 6.0.0.838 2025.06.13 0e28a F F 3515 1844 2025.06.14 02:12:52.609 2025.06.14 02:12:56.124 2025.06.13 23:28:43.150 2025.06.13 23:28:44.994
14 6.0.0.835 2025.06.12 2cf29 F F 3215 2644 2025.06.13 02:12:34.266 2025.06.13 02:12:37.481 2025.06.12 23:33:16.498 2025.06.12 23:33:19.142
15 6.0.0.834 2025.06.11 e889f F F 3345 2471 2025.06.12 02:07:52.534 2025.06.12 02:07:55.879 2025.06.11 23:28:32.380 2025.06.11 23:28:34.851
16 6.0.0.800 2025.06.10 1f226 P P 31760 20350 2025.06.11 00:37:00.742 2025.06.11 00:37:32.502 2025.06.10 22:28:24.841 2025.06.10 22:28:45.191
17 6.0.0.799 2025.06.07 be644 P P 30138 18167 2025.06.10 00:39:28.266 2025.06.10 00:39:58.404 2025.06.09 22:28:16.546 2025.06.09 22:28:34.713
18 6.0.0.797 2025.06.06 303e8 P P 43931 22652 2025.06.07 00:42:59.735 2025.06.07 00:43:43.666 2025.06.06 22:28:04.546 2025.06.06 22:28:27.198
19 6.0.0.795 2025.05.29 7a71a P P 28771 23952 2025.06.06 00:36:57.054 2025.06.06 00:37:25.825 2025.06.05 22:27:12.583 2025.06.05 22:27:36.535
20 6.0.0.792 2025.05.28 b4327 P P 30192 22308 2025.05.29 00:51:37.250 2025.05.29 00:52:07.442 2025.05.28 22:30:26.247 2025.05.28 22:30:48.555
21 6.0.0.791 2025.05.27 02db8 P P 37288 23098 2025.05.28 00:49:25.778 2025.05.28 00:50:03.066 2025.05.27 22:29:37.710 2025.05.27 22:30:00.808
22 6.0.0.789 2025.05.21 64051 P P 36600 22951 2025.05.25 00:42:03.826 2025.05.25 00:42:40.426 2025.05.24 22:28:39.890 2025.05.24 22:29:02.841
23 6.0.0.787 2025.05.20 230ad P P 29366 21150 2025.05.21 00:39:18.659 2025.05.21 00:39:48.025 2025.05.20 22:27:02.356 2025.05.20 22:27:23.506
24 6.0.0.783 2025.05.12 37320 P P 33538 21599 2025.05.19 12:11:06.821 2025.05.19 12:11:40.359 2025.05.19 10:13:56.176 2025.05.19 10:14:17.775
25 6.0.0.779 2025.05.11 136fa P P 28707 24548 2025.05.12 00:34:00.427 2025.05.12 00:34:29.134 2025.05.11 22:26:19.479 2025.05.11 22:26:44.027
26 6.0.0.778 2025.05.07 d735e P P 41544 24178 2025.05.08 00:36:09.419 2025.05.08 00:36:50.963 2025.05.07 22:25:05.088 2025.05.07 22:25:29.266
27 6.0.0.776 2025.05.06 007cd P P 29438 24946 2025.05.07 00:30:27.384 2025.05.07 00:30:56.822 2025.05.06 22:25:02.606 2025.05.06 22:25:27.552
28 6.0.0.770 2025.05.05 82c4a P P 34599 25005 2025.05.06 00:29:53.839 2025.05.06 00:30:28.438 2025.05.05 22:23:59.646 2025.05.05 22:24:24.651
29 6.0.0.767 2025.05.01 cdd29 P P 28939 24748 2025.05.02 00:26:29.335 2025.05.02 00:26:58.274 2025.05.01 22:23:10.295 2025.05.01 22:23:35.043
30 6.0.0.762 2025.04.30 5cb15 P P 32797 23995 2025.05.01 00:22:23.198 2025.05.01 00:22:55.995 2025.04.30 22:21:39.639 2025.04.30 22:22:03.634
31 6.0.0.755 2025.04.29 739c6 P P 29351 24244 2025.04.30 00:26:17.429 2025.04.30 00:26:46.780 2025.04.29 22:23:12.694 2025.04.29 22:23:36.938
32 6.0.0.753 2025.04.27 29ab3 P P 35508 24107 2025.04.28 00:27:33.729 2025.04.28 00:28:09.237 2025.04.27 22:22:22.579 2025.04.27 22:22:46.686
33 6.0.0.745 2025.04.21 78ad8 P P 29138 24027 2025.04.26 00:23:19.491 2025.04.26 00:23:48.629 2025.04.25 22:24:15.371 2025.04.25 22:24:39.398
34 6.0.0.744 2025.04.19 e883a P P 29959 24316 2025.04.20 00:26:28.002 2025.04.20 00:26:57.961 2025.04.19 22:23:39.061 2025.04.19 22:24:03.377
35 6.0.0.742 2025.04.17 abc3b P P 31400 25283 2025.04.19 00:28:23.334 2025.04.19 00:28:54.734 2025.04.18 22:24:05.511 2025.04.18 22:24:30.794
36 6.0.0.737 2025.04.16 fe52b P P 44823 24982 2025.04.17 00:23:51.603 2025.04.17 00:24:36.426 2025.04.16 22:24:09.720 2025.04.16 22:24:34.702
37 6.0.0.736 2025.04.14 3e6be P P 41898 17743 2025.04.15 00:04:51.899 2025.04.15 00:05:33.797 2025.04.14 22:14:56.454 2025.04.14 22:15:14.197
38 6.0.0.735 2025.04.13 6635c P P 29555 19018 2025.04.14 00:08:30.147 2025.04.14 00:08:59.702 2025.04.13 22:15:44.876 2025.04.13 22:16:03.894
39 6.0.0.734 2025.04.12 12f3f P P 27510 17884 2025.04.13 00:05:23.530 2025.04.13 00:05:51.040 2025.04.12 22:15:14.714 2025.04.12 22:15:32.598
40 6.0.0.730 2025.04.11 240b8 P P 29767 18238 2025.04.12 00:07:46.163 2025.04.12 00:08:15.930 2025.04.11 22:15:04.046 2025.04.11 22:15:22.284
41 6.0.0.726 2025.04.10 d79c6 P P 27318 18007 2025.04.11 00:07:50.894 2025.04.11 00:08:18.212 2025.04.10 22:15:08.718 2025.04.10 22:15:26.725
42 6.0.0.725 2025.04.09 a2b05 P P 27823 22815 2025.04.10 00:08:26.724 2025.04.10 00:08:54.547 2025.04.09 22:16:11.518 2025.04.09 22:16:34.333
43 6.0.0.722 2025.04.08 a8b86 P P 29065 24420 2025.04.09 00:24:52.857 2025.04.09 00:25:21.922 2025.04.08 22:23:17.767 2025.04.08 22:23:42.187
44 6.0.0.719 2025.04.06 90fd9 P P 39758 23941 2025.04.07 00:22:15.263 2025.04.07 00:22:55.021 2025.04.06 22:21:21.929 2025.04.06 22:21:45.870
45 6.0.0.717 2025.04.04 53d70 P P 28888 23746 2025.04.05 00:17:24.261 2025.04.05 00:17:53.149 2025.04.04 22:20:40.770 2025.04.04 22:21:04.516
46 6.0.0.716 2025.04.03 fc636 P P 41031 24047 2025.04.04 00:21:41.339 2025.04.04 00:22:22.370 2025.04.03 22:22:23.460 2025.04.03 22:22:47.507
47 6.0.0.715 2025.04.02 907ed P P 29182 24462 2025.04.03 00:21:13.910 2025.04.03 00:21:43.092 2025.04.02 22:22:42.691 2025.04.02 22:23:07.153
48 6.0.0.710 2025.04.01 40651 P P 33825 24227 2025.04.02 00:19:20.175 2025.04.02 00:19:54.000 2025.04.01 22:21:20.640 2025.04.01 22:21:44.867
49 6.0.0.708 2025.03.31 cb069 P P 29050 17749 2025.04.01 00:10:52.753 2025.04.01 00:11:21.803 2025.03.31 22:15:53.453 2025.03.31 22:16:11.202
50 6.0.0.707 2025.03.28 4bd4f P P 32309 22278 2025.03.31 00:11:04.875 2025.03.31 00:11:37.184 2025.03.30 22:16:22.457 2025.03.30 22:16:44.735
51 6.0.0.698 2025.03.26 d72a7 P P 29626 24625 2025.03.28 00:33:57.440 2025.03.28 00:34:27.066 2025.03.27 22:23:24.845 2025.03.27 22:23:49.470
52 6.0.0.693 2025.03.24 0b559 P P 28607 23787 2025.03.25 00:20:26.732 2025.03.25 00:20:55.339 2025.03.24 22:19:26.431 2025.03.24 22:19:50.218
53 6.0.0.687 2025.03.22 730aa P P 45686 23596 2025.03.24 00:30:00.263 2025.03.24 00:30:45.949 2025.03.23 22:26:40.786 2025.03.23 22:27:04.382
54 6.0.0.686 2025.03.20 71bf6 P P 33021 22583 2025.03.21 00:37:04.311 2025.03.21 00:37:37.332 2025.03.20 22:29:13.795 2025.03.20 22:29:36.378
55 6.0.0.685 2025.03.19 a8577 P P 44319 22286 2025.03.20 00:41:58.622 2025.03.20 00:42:42.941 2025.03.19 22:27:16.878 2025.03.19 22:27:39.164
56 6.0.0.680 2025.03.18 90d29 P P 241606 248838 2025.03.19 10:58:53.816 2025.03.19 11:02:55.422 2025.03.19 09:11:37.820 2025.03.19 09:15:46.658
57 6.0.0.677 2025.03.16 c0a60 P P 1242 374 2025.03.17 00:29:27.838 2025.03.17 00:29:29.080 2025.03.16 22:26:55.504 2025.03.16 22:26:55.878
58 6.0.0.676 2025.03.15 3034f P P 837 530 2025.03.16 16:00:52.535 2025.03.16 16:00:53.372 2025.03.16 14:16:10.305 2025.03.16 14:16:10.835
59 6.0.0.673 2025.03.13 40f5b P P 1168 607 2025.03.14 00:27:49.938 2025.03.14 00:27:51.106 2025.03.13 22:25:56.815 2025.03.13 22:25:57.422
60 6.0.0.671 2025.03.12 a4fff P P 1103 601 2025.03.13 00:31:27.559 2025.03.13 00:31:28.662 2025.03.12 22:29:00.524 2025.03.12 22:29:01.125
61 6.0.0.663 2025.03.11 daad2 P P 1214 586 2025.03.12 00:30:23.847 2025.03.12 00:30:25.061 2025.03.11 22:28:09.774 2025.03.11 22:28:10.360
62 6.0.0.661 2025.03.07 b9869 P P 659 422 2025.03.11 00:08:16.446 2025.03.11 00:08:17.105 2025.03.10 22:18:40.420 2025.03.10 22:18:40.842
63 6.0.0.660 2025.03.04 a6700 P P 581 585 2025.03.07 00:17:36.970 2025.03.07 00:17:37.551 2025.03.06 22:22:56.670 2025.03.06 22:22:57.255
64 6.0.0.658 2025.03.03 f15f8 P P 574 617 2025.03.04 00:12:30.655 2025.03.04 00:12:31.229 2025.03.03 22:18:57.562 2025.03.03 22:18:58.179
65 6.0.0.656 2025.02.27 25fb4 P P 1319 347 2025.03.03 00:42:46.411 2025.03.03 00:42:47.730 2025.03.02 22:30:21.911 2025.03.02 22:30:22.258
66 6.0.0.655 2025.02.25 6e3e0 P P 640 545 2025.02.27 00:14:44.098 2025.02.27 00:14:44.738 2025.02.26 22:19:52.794 2025.02.26 22:19:53.339
67 6.0.0.654 2025.02.24 b7141 P P 1132 568 2025.02.25 00:18:49.639 2025.02.25 00:18:50.771 2025.02.24 22:21:36.610 2025.02.24 22:21:37.178
68 6.0.0.652 2025.02.22 22662 P P 754 450 2025.02.24 07:34:44.404 2025.02.24 07:34:45.158 2025.02.24 00:33:25.379 2025.02.24 00:33:25.829
69 6.0.0.647 2025.02.21 9fccb P P 862 329 2025.02.22 00:18:55.259 2025.02.22 00:18:56.121 2025.02.21 22:25:20.949 2025.02.21 22:25:21.278
70 6.0.0.640 2025.02.19 9b8ac P P 625 440 2025.02.20 00:16:40.003 2025.02.20 00:16:40.628 2025.02.19 22:19:19.629 2025.02.19 22:19:20.069
71 6.0.0.639 2025.02.18 201a4 P P 990 698 2025.02.19 00:09:04.726 2025.02.19 00:09:05.716 2025.02.18 22:18:11.622 2025.02.18 22:18:12.320
72 6.0.0.637 2025.02.12 6d0f5 P P 608 592 2025.02.14 00:26:41.259 2025.02.14 00:26:41.867 2025.02.13 22:25:20.766 2025.02.13 22:25:21.358
73 6.0.0.636 2025.02.11 0424f P P 688 432 2025.02.12 00:24:19.949 2025.02.12 00:24:20.637 2025.02.11 22:24:50.495 2025.02.11 22:24:50.927
74 6.0.0.635 2025.02.10 f640f P P 1092 426 2025.02.11 00:21:34.946 2025.02.11 00:21:36.038 2025.02.10 22:25:18.855 2025.02.10 22:25:19.281
75 6.0.0.629 2025.02.07 194f9 P P 697 566 2025.02.08 00:22:06.758 2025.02.08 00:22:07.455 2025.02.07 22:23:45.561 2025.02.07 22:23:46.127
76 6.0.0.628 2025.02.06 859d5 P P 720 312 2025.02.07 00:38:29.060 2025.02.07 00:38:29.780 2025.02.06 22:31:03.062 2025.02.06 22:31:03.374
77 6.0.0.621 2025.02.05 34fe7 P P 603 558 2025.02.06 00:33:37.282 2025.02.06 00:33:37.885 2025.02.05 22:31:25.644 2025.02.05 22:31:26.202
78 6.0.0.609 2025.02.04 76d57 P P 636 536 2025.02.05 00:27:41.997 2025.02.05 00:27:42.633 2025.02.04 22:28:11.643 2025.02.04 22:28:12.179
79 6.0.0.607 2025.02.03 1985b P P 582 382 2025.02.04 00:25:59.859 2025.02.04 00:26:00.441 2025.02.03 22:28:40.050 2025.02.03 22:28:40.432
80 6.0.0.601 2025.02.01 6af07 P P 664 569 2025.02.02 00:19:54.925 2025.02.02 00:19:55.589 2025.02.01 22:23:02.243 2025.02.01 22:23:02.812
81 6.0.0.600 2025.01.27 188de P P 638 645 2025.01.28 00:26:31.957 2025.01.28 00:26:32.595 2025.01.27 22:25:00.058 2025.01.27 22:25:00.703
82 6.0.0.599 2025.01.25 ba588 P P 1087 671 2025.01.26 00:26:22.363 2025.01.26 00:26:23.450 2025.01.25 22:25:39.084 2025.01.25 22:25:39.755
83 6.0.0.598 2025.01.23 ddbc3 P P 969 613 2025.01.25 00:28:00.234 2025.01.25 00:28:01.203 2025.01.24 22:24:12.711 2025.01.24 22:24:13.324
84 6.0.0.595 2025.01.22 e62f3 P P 1304 419 2025.01.23 00:18:32.155 2025.01.23 00:18:33.459 2025.01.22 22:20:17.827 2025.01.22 22:20:18.246
85 6.0.0.594 2025.01.21 47fb6 P P 967 608 2025.01.22 00:14:11.787 2025.01.22 00:14:12.754 2025.01.21 22:19:41.004 2025.01.21 22:19:41.612
86 6.0.0.590 2025.01.20 9dc1e P P 642 647 2025.01.21 00:20:25.844 2025.01.21 00:20:26.486 2025.01.20 22:24:03.947 2025.01.20 22:24:04.594
87 6.0.0.588 2025.01.19 b1c4e P P 724 566 2025.01.20 00:18:46.778 2025.01.20 00:18:47.502 2025.01.19 22:21:57.701 2025.01.19 22:21:58.267
88 6.0.0.587 2025.01.18 63e6e P P 633 632 2025.01.19 00:23:13.315 2025.01.19 00:23:13.948 2025.01.18 22:23:43.254 2025.01.18 22:23:43.886
89 6.0.0.585 2025.01.16 2d6bb P P 649 578 2025.01.18 00:15:40.572 2025.01.18 00:15:41.221 2025.01.17 22:20:55.987 2025.01.17 22:20:56.565
90 6.0.0.584 2025.01.15 a0aa2 P P 764 635 2025.01.16 00:20:51.894 2025.01.16 00:20:52.658 2025.01.15 22:23:35.927 2025.01.15 22:23:36.562
91 6.0.0.581 2025.01.14 21e9e P P 613 547 2025.01.15 00:22:23.029 2025.01.15 00:22:23.642 2025.01.14 22:22:24.663 2025.01.14 22:22:25.210
92 6.0.0.577 2025.01.13 7e293 P P 776 597 2025.01.14 00:21:39.869 2025.01.14 00:21:40.645 2025.01.13 22:22:39.748 2025.01.13 22:22:40.345
93 6.0.0.576 2025.01.12 05898 P P 1053 598 2025.01.13 00:18:11.269 2025.01.13 00:18:12.322 2025.01.12 22:20:55.461 2025.01.12 22:20:56.059
94 6.0.0.573 2025.01.10 c20f3 P P 997 715 2025.01.11 00:19:39.109 2025.01.11 00:19:40.106 2025.01.10 22:22:06.110 2025.01.10 22:22:06.825
95 6.0.0.571 2024.12.31 81bba P P 556 332 2024.12.31 23:55:00.999 2024.12.31 23:55:01.555 2024.12.31 22:03:55.005 2024.12.31 22:03:55.337
96 6.0.0.570 2024.12.30 c3c8d P P 923 337 2024.12.30 23:54:43.519 2024.12.30 23:54:44.442 2024.12.30 22:03:50.774 2024.12.30 22:03:51.111
97 6.0.0.565 2024.12.28 5fc59 P P 575 306 2024.12.30 12:29:49.616 2024.12.30 12:29:50.191 2024.12.30 11:12:44.553 2024.12.30 11:12:44.859
98 6.0.0.564 2024.12.26 12514 P P 516 291 2024.12.26 23:56:10.694 2024.12.26 23:56:11.210 2024.12.26 22:03:58.246 2024.12.26 22:03:58.537
99 6.0.0.560 2024.12.25 fa83e P P 517 311 2024.12.25 23:48:33.713 2024.12.25 23:48:34.230 2024.12.25 22:03:54.301 2024.12.25 22:03:54.612
100 6.0.0.559 2024.12.23 cc800 P P 560 305 2024.12.24 23:49:57.767 2024.12.24 23:49:58.327 2024.12.24 22:04:22.065 2024.12.24 22:04:22.370
101 6.0.0.556 2024.12.22 a0404 P P 512 306 2024.12.22 23:55:56.746 2024.12.22 23:55:57.258 2024.12.22 22:03:44.863 2024.12.22 22:03:45.169
102 6.0.0.555 2024.12.19 6990a P P 526 296 2024.12.21 13:05:12.425 2024.12.21 13:05:12.951 2024.12.21 11:48:25.841 2024.12.21 11:48:26.137
103 6.0.0.553 2024.12.17 d1f8a P P 956 310 2024.12.17 23:50:25.103 2024.12.17 23:50:26.059 2024.12.17 22:04:23.832 2024.12.17 22:04:24.142
104 6.0.0.552 2024.12.11 85e25 P P 564 317 2024.12.15 23:54:43.983 2024.12.15 23:54:44.547 2024.12.15 22:04:07.866 2024.12.15 22:04:08.183
105 6.0.0.550 2024.12.10 b37ac P P 555 509 2024.12.10 23:50:23.966 2024.12.10 23:50:24.521 2024.12.10 22:05:25.636 2024.12.10 22:05:26.145
106 6.0.0.548 2024.12.08 2cc77 P P 587 315 2024.12.08 23:45:32.332 2024.12.08 23:45:32.919 2024.12.08 22:03:05.170 2024.12.08 22:03:05.485
107 6.0.0.544 2024.12.05 96943 P P 479 443 2024.12.05 23:49:55.536 2024.12.05 23:49:56.015 2024.12.05 22:06:32.359 2024.12.05 22:06:32.802
108 6.0.0.543 2024.12.03 30b77 P P 522 303 2024.12.03 23:50:33.043 2024.12.03 23:50:33.565 2024.12.03 22:05:01.903 2024.12.03 22:05:02.206
109 6.0.0.540 2024.12.02 4a1f4 P P 535 312 2024.12.02 23:46:16.860 2024.12.02 23:46:17.395 2024.12.02 22:04:21.448 2024.12.02 22:04:21.760
110 6.0.0.539 2024.11.28 1f283 P P 560 314 2024.11.29 23:58:15.939 2024.11.29 23:58:16.499 2024.11.29 22:04:48.378 2024.11.29 22:04:48.692
111 6.0.0.535 2024.11.26 77b95 P P 517 318 2024.11.26 23:41:00.126 2024.11.26 23:41:00.643 2024.11.26 22:02:21.777 2024.11.26 22:02:22.095
112 6.0.0.534 2024.11.25 e9584 P P 493 321 2024.11.25 23:42:19.939 2024.11.25 23:42:20.432 2024.11.25 22:03:11.150 2024.11.25 22:03:11.471
113 6.0.0.533 2024.11.17 933ac P P 553 317 2024.11.22 09:47:06.422 2024.11.22 09:47:06.975 2024.11.22 08:32:40.697 2024.11.22 08:32:41.014
114 6.0.0.532 2024.11.16 9e263 P P 1018 295 2024.11.16 23:31:48.645 2024.11.16 23:31:49.663 2024.11.16 22:03:09.724 2024.11.16 22:03:10.019
115 6.0.0.530 2024.11.15 49804 P P 523 311 2024.11.16 01:40:31.510 2024.11.16 01:40:32.033 2024.11.16 00:02:35.254 2024.11.16 00:02:35.565
116 6.0.0.528 2024.11.14 9625b P P 530 334 2024.11.15 01:43:40.887 2024.11.15 01:43:41.417 2024.11.15 00:03:56.195 2024.11.15 00:03:56.529
117 6.0.0.526 2024.11.12 65b80 P P 606 292 2024.11.14 01:43:41.716 2024.11.14 01:43:42.322 2024.11.14 00:03:25.507 2024.11.14 00:03:25.799
118 6.0.0.523 2024.11.08 8ca23 P P 531 344 2024.11.11 01:39:50.667 2024.11.11 01:39:51.198 2024.11.11 00:02:17.483 2024.11.11 00:02:17.827
119 6.0.0.520 2024.11.07 4eefa P P 519 297 2024.11.08 01:37:36.066 2024.11.08 01:37:36.585 2024.11.08 00:01:51.988 2024.11.08 00:01:52.285
120 6.0.0.516 2024.11.04 b0c36 P P 500 326 2024.11.05 01:36:23.643 2024.11.05 01:36:24.143 2024.11.05 00:01:31.666 2024.11.05 00:01:31.992
121 6.0.0.515 2024.10.30 d53f3 P P 526 328 2024.11.04 01:38:28.096 2024.11.04 01:38:28.622 2024.11.04 00:02:05.418 2024.11.04 00:02:05.746
122 6.0.0.512 2024.10.29 833ef P P 541 349 2024.10.30 01:41:08.585 2024.10.30 01:41:09.126 2024.10.30 00:03:33.008 2024.10.30 00:03:33.357
123 6.0.0.511 2024.10.26 c4bc9 P P 565 341 2024.10.29 01:41:06.727 2024.10.29 01:41:07.292 2024.10.29 00:03:09.290 2024.10.29 00:03:09.631
124 6.0.0.509 2024.10.25 3aedb P P 509 320 2024.10.26 01:51:09.677 2024.10.26 01:51:10.186 2024.10.26 00:06:15.281 2024.10.26 00:06:15.601
125 6.0.0.508 2024.10.24 a8f5b P P 521 349 2024.10.25 01:45:26.623 2024.10.25 01:45:27.144 2024.10.25 00:04:19.218 2024.10.25 00:04:19.567
126 6.0.0.502 2024.10.22 6bfd7 P P 539 337 2024.10.23 01:45:00.721 2024.10.23 01:45:01.260 2024.10.23 00:03:57.069 2024.10.23 00:03:57.406
127 6.0.0.500 2024.10.21 be565 P P 577 385 2024.10.22 17:50:05.032 2024.10.22 17:50:05.609 2024.10.22 16:33:37.497 2024.10.22 16:33:37.882
128 6.0.0.499 2024.10.19 6214b P P 582 359 2024.10.20 01:46:04.645 2024.10.20 01:46:05.227 2024.10.20 00:04:57.247 2024.10.20 00:04:57.606
129 6.0.0.498 2024.10.18 591a7 P P 551 322 2024.10.19 01:43:13.734 2024.10.19 01:43:14.285 2024.10.19 00:03:19.549 2024.10.19 00:03:19.871
130 6.0.0.494 2024.10.17 cf5a4 P P 536 332 2024.10.18 01:44:00.809 2024.10.18 01:44:01.345 2024.10.18 00:04:43.708 2024.10.18 00:04:44.040
131 6.0.0.491 2024.10.14 dc5fb P P 619 322 2024.10.15 01:40:54.164 2024.10.15 01:40:54.783 2024.10.15 00:02:29.631 2024.10.15 00:02:29.953
132 6.0.0.489 2024.10.11 2ba59 P P 600 322 2024.10.12 01:47:34.265 2024.10.12 01:47:34.865 2024.10.12 00:04:34.781 2024.10.12 00:04:35.103
133 6.0.0.488 2024.10.09 1c93e P P 559 598 2024.10.10 01:55:50.726 2024.10.10 01:55:51.285 2024.10.10 00:07:41.569 2024.10.10 00:07:42.167
134 6.0.0.487 2024.10.06 065a3 P P 560 656 2024.10.07 01:54:46.501 2024.10.07 01:54:47.061 2024.10.07 00:07:30.853 2024.10.07 00:07:31.509
135 6.0.0.485 2024.10.04 e95c1 P P 521 465 2024.10.05 01:56:56.884 2024.10.05 01:56:57.405 2024.10.05 00:07:38.796 2024.10.05 00:07:39.261
136 6.0.0.483 2024.10.02 5e5ae P P 563 469 2024.10.03 01:51:56.638 2024.10.03 01:51:57.201 2024.10.03 00:06:47.525 2024.10.03 00:06:47.994
137 6.0.0.478 2024.09.30 b5010 P P 1025 370 2024.10.01 01:46:28.633 2024.10.01 01:46:29.658 2024.10.01 00:06:09.581 2024.10.01 00:06:09.951
138 6.0.0.474 2024.09.26 e4efb P P 549 324 2024.09.30 01:47:21.992 2024.09.30 01:47:22.541 2024.09.30 00:04:50.123 2024.09.30 00:04:50.447
139 6.0.0.471 2024.09.24 01b51 P P 677 481 2024.09.25 23:51:12.900 2024.09.25 23:51:13.577 2024.09.25 22:05:35.004 2024.09.25 22:05:35.485
140 6.0.0.470 2024.09.23 77cc0 P P 917 479 2024.09.23 23:49:42.183 2024.09.23 23:49:43.100 2024.09.23 22:05:44.526 2024.09.23 22:05:45.005
141 6.0.0.467 2024.09.21 ea0b8 P P 608 356 2024.09.22 23:48:06.532 2024.09.22 23:48:07.140 2024.09.22 22:04:51.250 2024.09.22 22:04:51.606
142 6.0.0.466 2024.09.20 32dc6 P P 555 319 2024.09.20 23:46:54.035 2024.09.20 23:46:54.590 2024.09.20 22:04:33.546 2024.09.20 22:04:33.865
143 6.0.0.461 2024.09.17 2c895 P P 1052 390 2024.09.18 00:21:23.014 2024.09.18 00:21:24.066 2024.09.17 22:26:40.414 2024.09.17 22:26:40.804
144 6.0.0.460 2024.09.11 3c253 P P 891 384 2024.09.17 00:22:18.058 2024.09.17 00:22:18.949 2024.09.16 22:27:40.561 2024.09.16 22:27:40.945
145 6.0.0.457 2024.09.09 fdc6f P P 1380 613 2024.09.10 00:45:45.336 2024.09.10 00:45:46.716 2024.09.09 22:36:45.239 2024.09.09 22:36:45.852
146 6.0.0.455 2024.09.07 500d8 P P 894 371 2024.09.08 00:41:37.927 2024.09.08 00:41:38.821 2024.09.07 22:34:54.678 2024.09.07 22:34:55.049
147 6.0.0.454 2024.09.05 4d70f P P 1033 380 2024.09.06 00:25:55.293 2024.09.06 00:25:56.326 2024.09.05 22:29:46.136 2024.09.05 22:29:46.516
148 6.0.0.452 2024.09.04 9ff9c P P 706 531 2024.09.05 00:22:23.802 2024.09.05 00:22:24.508 2024.09.04 22:27:59.445 2024.09.04 22:27:59.976
149 6.0.0.450 2024.09.02 27124 P P 911 393 2024.09.04 01:34:34.588 2024.09.04 01:34:35.499 2024.09.03 22:57:32.637 2024.09.03 22:57:33.030
150 6.0.0.447 2024.09.01 056ec P P 1460 529 2024.09.02 00:47:58.841 2024.09.02 00:48:00.301 2024.09.01 22:33:40.667 2024.09.01 22:33:41.196
151 6.0.0.446 2024.08.30 fe1b2 P P 1113 440 2024.09.01 00:52:39.159 2024.09.01 00:52:40.272 2024.08.31 22:46:04.857 2024.08.31 22:46:05.297
152 6.0.0.444 2024.08.28 785d4 P P 888 1202 2024.08.30 01:05:57.674 2024.08.30 01:05:58.562 2024.08.29 22:56:28.140 2024.08.29 22:56:29.342
153 6.0.0.442 2024.08.21 4a68f P P 1072 640 2024.08.28 02:46:35.880 2024.08.28 02:46:36.952 2024.08.27 23:48:46.970 2024.08.27 23:48:47.610
154 6.0.0.441 2024.08.20 75042 P P 1198 479 2024.08.21 00:37:28.528 2024.08.21 00:37:29.726 2024.08.20 22:34:39.598 2024.08.20 22:34:40.077
155 6.0.0.438 2024.08.16 088b5 P P 620 744 2024.08.18 23:50:43.993 2024.08.18 23:50:44.613 2024.08.18 22:12:40.936 2024.08.18 22:12:41.680
156 6.0.0.437 2024.08.14 3c88b P P 664 567 2024.08.15 23:48:28.889 2024.08.15 23:48:29.553 2024.08.15 22:11:33.458 2024.08.15 22:11:34.025
157 6.0.0.432 2024.08.11 e82ac P P 609 609 2024.08.12 23:46:18.339 2024.08.12 23:46:18.948 2024.08.12 22:09:54.178 2024.08.12 22:09:54.787
158 6.0.0.431 2024.08.09 de5a7 P P 1265 621 2024.08.09 23:47:21.936 2024.08.09 23:47:23.201 2024.08.09 22:10:11.359 2024.08.09 22:10:11.980
159 6.0.0.428 2024.08.08 9191b P P 752 586 2024.08.08 23:46:30.741 2024.08.08 23:46:31.493 2024.08.08 22:09:37.683 2024.08.08 22:09:38.269
160 6.0.0.423 2024.08.07 33b41 P P 782 448 2024.08.08 09:35:16.049 2024.08.08 09:35:16.831 2024.08.08 08:16:50.798 2024.08.08 08:16:51.246
161 6.0.0.421 2024.08.06 ed60d P P 742 341 2024.08.06 23:29:41.950 2024.08.06 23:29:42.692 2024.08.06 22:04:29.632 2024.08.06 22:04:29.973
162 6.0.0.419 2024.08.05 3505a P P 731 305 2024.08.05 23:31:51.302 2024.08.05 23:31:52.033 2024.08.05 22:04:26.383 2024.08.05 22:04:26.688
163 6.0.0.409 2024.08.02 ec18f P P 780 281 2024.08.04 23:36:12.329 2024.08.04 23:36:13.109 2024.08.04 22:05:10.632 2024.08.04 22:05:10.913
164 6.0.0.406 2024.08.01 b20be P P 706 322 2024.08.01 23:34:59.979 2024.08.01 23:35:00.685 2024.08.01 22:04:35.461 2024.08.01 22:04:35.783
165 6.0.0.405 2024.07.31 a62ac P P 748 284 2024.07.31 23:33:24.003 2024.07.31 23:33:24.751 2024.07.31 22:04:18.052 2024.07.31 22:04:18.336
166 6.0.0.403 2024.07.29 30f03 P P 740 296 2024.07.29 23:32:59.813 2024.07.29 23:33:00.553 2024.07.29 22:04:03.771 2024.07.29 22:04:04.067
167 6.0.0.401 2024.07.26 24e41 P P 724 294 2024.07.26 23:29:27.421 2024.07.26 23:29:28.145 2024.07.26 22:03:57.782 2024.07.26 22:03:58.076
168 6.0.0.400 2024.07.24 5bb78 P P 796 314 2024.07.24 23:29:12.525 2024.07.24 23:29:13.321 2024.07.24 22:04:14.036 2024.07.24 22:04:14.350
169 6.0.0.398 2024.07.23 85b18 P P 755 372 2024.07.23 23:36:59.489 2024.07.23 23:37:00.244 2024.07.23 22:09:37.242 2024.07.23 22:09:37.614
170 6.0.0.397 2024.07.22 c734c P P 792 316 2024.07.22 23:29:10.157 2024.07.22 23:29:10.949 2024.07.22 22:04:10.912 2024.07.22 22:04:11.228
171 6.0.0.396 2024.07.13 cf952 P P 818 275 2024.07.21 23:30:10.551 2024.07.21 23:30:11.369 2024.07.21 22:03:56.085 2024.07.21 22:03:56.360
172 6.0.0.395 2024.07.10 845f4 P P 755 299 2024.07.12 23:30:33.205 2024.07.12 23:30:33.960 2024.07.12 22:03:04.025 2024.07.12 22:03:04.324
173 6.0.0.392 2024.07.09 ea301 P P 739 315 2024.07.09 23:26:22.813 2024.07.09 23:26:23.552 2024.07.09 22:02:33.548 2024.07.09 22:02:33.863
174 6.0.0.391 2024.07.08 7d50c P P 764 306 2024.07.08 23:27:40.501 2024.07.08 23:27:41.265 2024.07.08 22:03:29.433 2024.07.08 22:03:29.739
175 6.0.0.389 2024.07.05 cc71c P P 789 283 2024.07.05 23:31:28.384 2024.07.05 23:31:29.173 2024.07.05 22:03:17.365 2024.07.05 22:03:17.648
176 6.0.0.388 2024.06.30 e5700 P P 804 316 2024.06.30 23:27:59.840 2024.06.30 23:28:00.644 2024.06.30 22:03:52.766 2024.06.30 22:03:53.082
177 6.0.0.387 2024.06.27 7c28a P P 756 292 2024.06.27 23:26:56.633 2024.06.27 23:26:57.389 2024.06.27 22:03:32.715 2024.06.27 22:03:33.007
178 6.0.0.386 2024.06.23 7c57f P P 765 321 2024.06.23 23:24:19.496 2024.06.23 23:24:20.261 2024.06.23 22:02:19.212 2024.06.23 22:02:19.533
179 6.0.0.384 2024.06.21 24d99 P P 791 351 2024.06.21 23:28:43.418 2024.06.21 23:28:44.209 2024.06.21 22:03:26.050 2024.06.21 22:03:26.401
180 6.0.0.374 2024.06.13 0097d P P 751 354 2024.06.20 23:26:42.865 2024.06.20 23:26:43.616 2024.06.20 22:02:46.528 2024.06.20 22:02:46.882
181 6.0.0.373 2024.06.09 363f0 P P 496 320 2024.06.13 13:36:49.771 2024.06.13 13:36:50.267 2024.06.13 12:26:28.636 2024.06.13 12:26:28.956
182 6.0.0.371 2024.06.08 f7130 P P 492 294 2024.06.11 22:23:30.222 2024.06.11 22:23:30.714 2024.06.11 21:20:25.509 2024.06.11 21:20:25.803
183 6.0.0.366 2024.05.30 ab2c9 P P 683 230 2024.06.12 09:34:03.966 2024.06.12 09:34:04.649 2024.06.12 07:54:57.618 2024.06.12 07:54:57.848
184 6.0.0.363 2024.05.27 06703 P P 575 243 2024.06.12 14:30:09.130 2024.06.12 14:30:09.705 2024.06.12 13:23:47.388 2024.06.12 13:23:47.631
185 6.0.0.359 2024.05.23 9cb11 P P 542 248 2024.06.12 12:22:18.492 2024.06.12 12:22:19.034 2024.06.12 11:16:19.190 2024.06.12 11:16:19.438
186 6.0.0.358 2024.05.21 995dd P P 424 233 2024.06.12 17:05:07.349 2024.06.12 17:05:07.773 2024.06.12 16:00:50.137 2024.06.12 16:00:50.370
187 6.0.0.357 2024.05.18 bf6c4 P P 514 295 2024.06.12 21:41:32.792 2024.06.12 21:41:33.306 2024.06.12 20:37:01.954 2024.06.12 20:37:02.249
188 6.0.0.356 2024.05.17 eab06 P P 419 202 2024.06.13 05:47:55.193 2024.06.13 05:47:55.612 2024.06.13 04:43:32.295 2024.06.13 04:43:32.497
189 6.0.0.355 2024.05.16 8dd6e P P 557 240 2024.06.13 07:55:34.793 2024.06.13 07:55:35.350 2024.06.13 06:51:21.176 2024.06.13 06:51:21.416
190 6.0.0.354 2024.05.15 d3adc P P 434 290 2024.06.13 11:01:29.954 2024.06.13 11:01:30.388 2024.06.13 09:51:52.857 2024.06.13 09:51:53.147
191 6.0.0.351 2024.05.14 2e3e0 P P 466 289 2024.06.13 16:15:18.723 2024.06.13 16:15:19.189 2024.06.13 15:05:01.797 2024.06.13 15:05:02.086

Elapsed time, ms. Chart for last 150 runs:

Last commits information (all timestamps in UTC):