| 3603 | return NULL; |
| 3604 | } |
| 3605 | memcpy(out, content, len); |
| 3606 | out[len] = '\0'; |
| 3607 | return out; |
| 3608 | } |
| 3609 | |
| 3610 | typedef enum { |
| 3611 | REGRADE_NOT_GRADED, |
| 3612 | REGRADE_PASSED, |
| 3613 | REGRADE_FAILED, |
| 3614 | } regrade_outcome; |
| 3615 | |
| 3616 | /* Decide how one trace case regrades. Only PASSED/FAILED traces were graded by |
| 3617 | * a completed run; STOPPED/SKIPPED/SWITCHED/ERROR cases carry partial or no |
| 3618 | * model output and must be reported as not-graded rather than counted, since |
| 3619 | * grading them inflates the totals and raises spurious "changed" drift. An |
| 3620 | * empty status keeps legacy traces (written before the status line) working. */ |
| 3621 | static regrade_outcome regrade_case_outcome(const eval_case *tc, |
| 3622 | const char *traced_status, |
nothing calls this directly
no test coverage detected