static TestResult *construct_test_result (RcvMsg *rmsg, int waserror) { TestResult *tr; if (rmsg == NULL) return NULL; tr = tr_create(); if (rmsg->msg != NULL || waserror) { tr->ctx = (cur_fork_status () == CK_FORK) ? rmsg->lastctx : rmsg->failctx; tr->msg = rmsg->msg; rmsg->msg = NULL; tr_set_loc_by_ctx (tr, tr->ctx, rmsg); } else if (rmsg->lastctx == CK_CTX_SETUP) { tr->ctx = CK_CTX_SETUP; tr->msg = NULL; tr_set_loc_by_ctx (tr, CK_CTX_SETUP, rmsg); } else { tr->ctx = CK_CTX_TEST; tr->msg = NULL; tr_set_loc_by_ctx (tr, CK_CTX_TEST, rmsg); } return tr; }
static TestResult * construct_test_result (RcvMsg * rmsg, int waserror) { TestResult *tr; if (rmsg == NULL) return NULL; tr = tr_create (); if (rmsg->msg != NULL || waserror) { if (rmsg->failctx != CK_CTX_INVALID) { tr->ctx = rmsg->failctx; } else { tr->ctx = rmsg->lastctx; } tr->msg = rmsg->msg; rmsg->msg = NULL; tr_set_loc_by_ctx (tr, tr->ctx, rmsg); } else if (rmsg->lastctx == CK_CTX_SETUP) { tr->ctx = CK_CTX_SETUP; tr->msg = NULL; tr_set_loc_by_ctx (tr, CK_CTX_SETUP, rmsg); } else { tr->ctx = CK_CTX_TEST; tr->msg = NULL; tr->duration = rmsg->duration; tr_set_loc_by_ctx (tr, CK_CTX_TEST, rmsg); } return tr; }