@@ -107,9 +107,12 @@ void fossil_pizza_test_output(const fossil_pizza_case_t* test_case) {
107107 if (!test_case ) return ;
108108
109109 const char * result_str =
110+ (test_case -> result == FOSSIL_PIZZA_CASE_EMPTY ) ? "EMPTY" :
110111 (test_case -> result == FOSSIL_PIZZA_CASE_PASS ) ? "PASS" :
111112 (test_case -> result == FOSSIL_PIZZA_CASE_FAIL ) ? "FAIL" :
112- (test_case -> result == FOSSIL_PIZZA_CASE_EMPTY ) ? "EMPTY" : "UNKNOWN" ;
113+ (test_case -> result == FOSSIL_PIZZA_CASE_TIMEOUT ) ? "TIMEOUT" :
114+ (test_case -> result == FOSSIL_PIZZA_CASE_SKIPPED ) ? "SKIPPED" :
115+ (test_case -> result == FOSSIL_PIZZA_CASE_UNEXPECTED ) ? "UNEXPECTED" : "UNKNOWN" ;
113116
114117 switch (G_PIZZA_THEME ) {
115118 case PIZZA_THEME_FOSSIL :
@@ -118,8 +121,10 @@ void fossil_pizza_test_output(const fossil_pizza_case_t* test_case) {
118121 test_case -> name , result_str , test_case -> elapsed_ns );
119122 } else if (G_PIZZA_VERBOSE == PIZZA_VERBOSE_DOGE ) {
120123 pizza_io_printf ("{blue}========================================{reset}\n" );
121- pizza_io_printf ("{cyan}Test Case:{reset} %s\n" , test_case -> name );
122- pizza_io_printf ("{cyan}Given Result:{reset} %s\n" , result_str );
124+ pizza_io_printf ("{cyan}Test Case :{reset} %s\n" , test_case -> name );
125+ pizza_io_printf ("{cyan}Given Tags :{reset} %s\n" , test_case -> tags );
126+ pizza_io_printf ("{cyan}Given Criteria:{reset} %s\n" , test_case -> criteria );
127+ pizza_io_printf ("{cyan}Given Result :{reset} %s\n" , result_str );
123128 pizza_io_printf ("{cyan}With Timestamp:{reset} %llu ns\n" , test_case -> elapsed_ns );
124129 pizza_io_printf ("{blue}========================================{reset}\n" );
125130 }
@@ -133,6 +138,8 @@ void fossil_pizza_test_output(const fossil_pizza_case_t* test_case) {
133138 } else if (G_PIZZA_VERBOSE == PIZZA_VERBOSE_DOGE ) {
134139 pizza_io_printf ("{cyan}========================================{reset}\n" );
135140 pizza_io_printf ("{cyan}Test Case:{reset} %s\n" , test_case -> name );
141+ pizza_io_printf ("{cyan}Given Tags:{reset} %s\n" , test_case -> tags );
142+ pizza_io_printf ("{cyan}Given Criteria:{reset} %s\n" , test_case -> criteria );
136143 pizza_io_printf ("{cyan}Given Result:{reset} %s\n" , result_str );
137144 pizza_io_printf ("{cyan}With Timestamp:{reset} %llu ns\n" , test_case -> elapsed_ns );
138145 pizza_io_printf ("{cyan}========================================{reset}\n" );
@@ -146,6 +153,8 @@ void fossil_pizza_test_output(const fossil_pizza_case_t* test_case) {
146153 } else if (G_PIZZA_VERBOSE == PIZZA_VERBOSE_DOGE ) {
147154 pizza_io_printf ("{blue}[========================================]{reset}\n" );
148155 pizza_io_printf ("{blue}[Test Case]:{reset} %s\n" , test_case -> name );
156+ pizza_io_printf ("{blue}[Given Tags]:{reset} %s\n" , test_case -> tags );
157+ pizza_io_printf ("{blue}[Given Criteria]:{reset} %s\n" , test_case -> criteria );
149158 pizza_io_printf ("{blue}[Given Result]:{reset} %s\n" , result_str );
150159 pizza_io_printf ("{blue}[With Timestamp]:{reset} %llu ns\n" , test_case -> elapsed_ns );
151160 pizza_io_printf ("{blue}[========================================]{reset}\n" );
@@ -159,6 +168,8 @@ void fossil_pizza_test_output(const fossil_pizza_case_t* test_case) {
159168 } else if (G_PIZZA_VERBOSE == PIZZA_VERBOSE_DOGE ) {
160169 pizza_io_printf ("{green}# ========================================{reset}\n" );
161170 pizza_io_printf ("{green}# Test Case:{reset} %s\n" , test_case -> name );
171+ pizza_io_printf ("{green}# Given Tags:{reset} %s\n" , test_case -> tags );
172+ pizza_io_printf ("{green}# Given Criteria:{reset} %s\n" , test_case -> criteria );
162173 pizza_io_printf ("{green}# Given Result:{reset} %s\n" , result_str );
163174 pizza_io_printf ("{green}# With Timestamp:{reset} %llu ns\n" , test_case -> elapsed_ns );
164175 pizza_io_printf ("{green}# ========================================{reset}\n" );
@@ -172,6 +183,8 @@ void fossil_pizza_test_output(const fossil_pizza_case_t* test_case) {
172183 } else if (G_PIZZA_VERBOSE == PIZZA_VERBOSE_DOGE ) {
173184 pizza_io_printf ("{blue}[========================================]{reset}\n" );
174185 pizza_io_printf ("{blue}[Test Case]:{reset} %s\n" , test_case -> name );
186+ pizza_io_printf ("{blue}[Given Tags]:{reset} %s\n" , test_case -> tags );
187+ pizza_io_printf ("{blue}[Given Criteria]:{reset} %s\n" , test_case -> criteria );
175188 pizza_io_printf ("{blue}[Given Result]:{reset} %s\n" , result_str );
176189 pizza_io_printf ("{blue}[With Timestamp]:{reset} %llu ns\n" , test_case -> elapsed_ns );
177190 pizza_io_printf ("{blue}[========================================]{reset}\n" );
@@ -185,6 +198,8 @@ void fossil_pizza_test_output(const fossil_pizza_case_t* test_case) {
185198 } else if (G_PIZZA_VERBOSE == PIZZA_VERBOSE_DOGE ) {
186199 pizza_io_printf ("{magenta}========================================{reset}\n" );
187200 pizza_io_printf ("{magenta}Test Case:{reset} %s\n" , test_case -> name );
201+ pizza_io_printf ("{magenta}Given Tags:{reset} %s\n" , test_case -> tags );
202+ pizza_io_printf ("{magenta}Given Criteria:{reset} %s\n" , test_case -> criteria );
188203 pizza_io_printf ("{magenta}Given Result:{reset} %s\n" , result_str );
189204 pizza_io_printf ("{magenta}With Timestamp:{reset} %llu ns\n" , test_case -> elapsed_ns );
190205 pizza_io_printf ("{magenta}========================================{reset}\n" );
@@ -198,13 +213,19 @@ void fossil_pizza_test_output(const fossil_pizza_case_t* test_case) {
198213 } else if (G_PIZZA_VERBOSE == PIZZA_VERBOSE_DOGE ) {
199214 pizza_io_printf ("{cyan}========================================{reset}\n" );
200215 pizza_io_printf ("{cyan}Test Case:{reset} %s\n" , test_case -> name );
216+ pizza_io_printf ("{cyan}Given Tags:{reset} %s\n" , test_case -> tags );
217+ pizza_io_printf ("{cyan}Given Criteria:{reset} %s\n" , test_case -> criteria );
201218 pizza_io_printf ("{cyan}Given Result:{reset} %s\n" , result_str );
202219 pizza_io_printf ("{cyan}With Timestamp:{reset} %llu ns\n" , test_case -> elapsed_ns );
203220 pizza_io_printf ("{cyan}========================================{reset}\n" );
204221 }
205222 break ;
206223 }
207224}
225+ // Utility function to convert seconds to nanoseconds
226+ static uint64_t seconds_to_nanoseconds (uint64_t seconds ) {
227+ return seconds * 1000000000ULL ;
228+ }
208229
209230void fossil_pizza_run_test (const fossil_pizza_engine_t * engine , fossil_pizza_case_t * test_case , fossil_pizza_suite_t * suite ) {
210231 if (!test_case || !suite ) return ;
@@ -225,7 +246,7 @@ void fossil_pizza_run_test(const fossil_pizza_engine_t* engine, fossil_pizza_cas
225246 test_case -> run ();
226247 uint64_t elapsed_time = fossil_pizza_now_ns () - start_time ;
227248
228- if (1000000ULL > 0 && elapsed_time > 1000000ULL ) {
249+ if (elapsed_time > seconds_to_nanoseconds ( G_PIZZA_TIMEOUT )) { // 1 minute in nanoseconds
229250 test_case -> result = FOSSIL_PIZZA_CASE_TIMEOUT ;
230251 } else {
231252 test_case -> result = FOSSIL_PIZZA_CASE_PASS ;
@@ -247,6 +268,10 @@ void fossil_pizza_run_test(const fossil_pizza_engine_t* engine, fossil_pizza_cas
247268
248269 // Output test case result
249270 fossil_pizza_test_output (test_case );
271+ } else if (test_case -> result == FOSSIL_PIZZA_CASE_SKIPPED ) {
272+ // Output skipped test case result
273+ test_case -> elapsed_ns = 0 ; // No time elapsed for skipped tests
274+ fossil_pizza_test_output (test_case );
250275 } else {
251276 // Handle unexpected cases
252277 test_case -> result = FOSSIL_PIZZA_CASE_UNEXPECTED ;
0 commit comments