@@ -133,7 +133,7 @@ static struct {
133133 int exit_on_error ;
134134 int report_suite_names ;
135135
136- int run_benchmarks ;
136+ int report_benchmarks ;
137137 double timing_start ;
138138 double timing_end ;
139139
@@ -157,7 +157,6 @@ static struct {
157157struct clar_func {
158158 const char * name ;
159159 void (* ptr )(void );
160- int is_bench ;
161160};
162161
163162struct clar_suite {
@@ -251,6 +250,8 @@ clar_run_test(
251250 const struct clar_func * cleanup )
252251{
253252 _clar .test_status = CL_TEST_OK ;
253+ _clar .timing_start = 0.0 ;
254+ _clar .timing_end = 0.0 ;
254255 _clar .trampoline_enabled = 1 ;
255256
256257 CL_TRACE (CL_TRACE__TEST__BEGIN );
@@ -327,22 +328,19 @@ clar_run_suite(const struct clar_suite *suite, const char *filter)
327328 if (filter && strncmp (test [i ].name , filter , matchlen ))
328329 continue ;
329330
330- if (test [i ].is_bench != _clar .run_benchmarks )
331- continue ;
332-
333331 _clar .active_test = test [i ].name ;
334332 clar_run_test (& test [i ], & suite -> initialize , & suite -> cleanup );
335333
336334 if (_clar .exit_on_error && _clar .total_errors )
337335 return ;
338336
339- if (test [i ].is_bench ) {
340- clar_store_timing ();
341- }
337+ clar_store_timing ();
342338 }
343339
344- puts ("" );
345- clar_report_timings ();
340+ if (_clar .report_benchmarks ) {
341+ puts ("" );
342+ clar_report_timings ();
343+ }
346344
347345 _clar .active_test = NULL ;
348346 CL_TRACE (CL_TRACE__SUITE_END );
@@ -360,7 +358,7 @@ clar_usage(const char *arg)
360358 printf (" -q \tOnly report tests that had an error\n" );
361359 printf (" -Q \tQuit as soon as a test fails\n" );
362360 printf (" -l \tPrint suite names\n" );
363- printf (" -b \tRun benchmarks instead of tests \n" );
361+ printf (" -b \tReport test benchmarks \n" );
364362 exit (-1 );
365363}
366364
@@ -420,7 +418,7 @@ clar_parse_args(int argc, char **argv)
420418 }
421419
422420 case 'b' :
423- _clar .run_benchmarks = 1 ;
421+ _clar .report_benchmarks = 1 ;
424422 break ;
425423
426424 case 'q' :
@@ -509,7 +507,13 @@ clar_test(int argc, char **argv)
509507
510508static void clar_store_timing (void )
511509{
512- struct clar_timing * timing = calloc (1 , sizeof (struct clar_timing ));
510+ struct clar_timing * timing ;
511+
512+ /* Failed tests jump over the timing code */
513+ if (_clar .timing_end == 0 )
514+ return ;
515+
516+ timing = calloc (1 , sizeof (struct clar_timing ));
513517
514518 if (_clar .timings == NULL )
515519 _clar .timings = timing ;
0 commit comments