@@ -984,7 +984,7 @@ def __test_showtime(tmp_path, showtime, exp_len, exp_last, extra_args=None):
984984 assert len (lines ) == exp_len
985985 idx_last = exp_len - 1
986986 if idx_last :
987- assert lines [0 ] == ''
987+ assert lines [0 ] == '' # TODO: get rid of the empty line
988988 for i in range (1 , idx_last ):
989989 assert 'avg.' in lines [i ]
990990 assert lines [idx_last ].startswith (exp_last )
@@ -1013,30 +1013,62 @@ def test_showtime_top5_summary_j_process(tmp_path):
10131013
10141014
10151015def test_showtime_file (tmp_path ):
1016- __test_showtime (tmp_path , 'file' , 79 , 'Check time: ' )
1016+ __test_showtime (tmp_path , 'file' , 80 , 'Check time: ' )
10171017
10181018
10191019# TODO: remove extra args when --executor=process works works
10201020def test_showtime_summary (tmp_path ):
1021- __test_showtime (tmp_path , 'summary' , 79 , 'Overall time: ' , ['-j1' ])
1021+ __test_showtime (tmp_path , 'summary' , 80 , 'Overall time: ' , ['-j1' ])
10221022
10231023
10241024# TODO: remove when --executor=process works works
10251025def test_showtime_summary_j_thread (tmp_path ):
1026- __test_showtime (tmp_path , 'summary' , 79 , 'Overall time: ' , ['-j2' , '--executor=thread' ])
1026+ __test_showtime (tmp_path , 'summary' , 80 , 'Overall time: ' , ['-j2' , '--executor=thread' ])
10271027
10281028
10291029# TODO: remove override when fixed
10301030@pytest .mark .skipif (sys .platform == 'win32' , reason = "requires ProcessExecutor" )
10311031@pytest .mark .xfail (strict = True ) # TODO: need to transfer the timer results to parent process - see #4452
10321032def test_showtime_summary_j_process (tmp_path ):
1033- __test_showtime (tmp_path , 'summary' , 79 , 'Overall time: ' , ['-j2' , '--executor=process' ])
1033+ __test_showtime (tmp_path , 'summary' , 80 , 'Overall time: ' , ['-j2' , '--executor=process' ])
10341034
10351035
10361036def test_showtime_file_total (tmp_path ):
10371037 __test_showtime (tmp_path , 'file-total' , 1 , 'Check time: ' )
10381038
10391039
1040+ def test_showtime_unique (tmp_path ):
1041+ test_file = tmp_path / 'test.cpp'
1042+ with open (test_file , 'wt' ) as f :
1043+ f .write (
1044+ """
1045+ void f()
1046+ {
1047+ (void)(*((int*)0)); // cppcheck-suppress nullPointer
1048+ }
1049+ """ )
1050+
1051+ args = [
1052+ f'--showtime=summary' ,
1053+ '--quiet' ,
1054+ '--inline-suppr' ,
1055+ str (test_file )
1056+ ]
1057+
1058+ exitcode , stdout , stderr = cppcheck (args )
1059+ assert exitcode == 0
1060+ multi_res = []
1061+ for line in stdout .splitlines ():
1062+ # TODO: get rid of empty line
1063+ if not line :
1064+ continue
1065+ if any (i in line for i in ['1 result(s)' , 'Overall time:' ]):
1066+ continue
1067+ multi_res .append (line )
1068+ assert multi_res == []
1069+ assert stderr == ''
1070+
1071+
10401072def test_missing_addon (tmpdir ):
10411073 args = ['--addon=misra3' , '--addon=misra' , '--addon=misra2' , 'file.c' ]
10421074
0 commit comments