static void test_analyze_results(struct test *test, int *stdo, int *stde) { scanstate scanner; char scanbuf[BUFSIZ]; *stdo = *stde = -1; if(was_aborted(test->status)) { test_failures++; return; } if(was_disabled(test->status)) { return; } if(test->status == test_has_failed) { test_failures++; return; } if(!was_started(test->status)) { test_failures++; return; } test->stdout_match = match_unknown; test->stderr_match = match_unknown; scanstate_init(&scanner, scanbuf, sizeof(scanbuf)); scan_sections(test, &test->testscanner, parse_section_compare, &scanner); assert(test->stdout_match != match_inprogress); assert(test->stderr_match != match_inprogress); if(test->stdout_match == match_unknown) { test->stdout_match = (fd_has_data(test, test->outfd) ? match_no : match_yes); } if(test->stderr_match == match_unknown) { test->stderr_match = (fd_has_data(test, test->errfd) ? match_no : match_yes); } *stdo = (test->stdout_match != match_yes); *stde = (test->stderr_match != match_yes); if(!*stdo && !*stde && !test->exitsignal) { test_successes++; } else { test_failures++; } }
static bool can_dump_netlink_sk(int lfd) { int ret; ret = fd_has_data(lfd); if (ret == 1) pr_err("The socket has data to read\n"); return ret == 0; }
void dump_results(struct test *test) { int tempref = 0; if(was_aborted(test->status)) { dump_reason(test, "was aborted"); return; } if(was_disabled(test->status)) { dump_reason(test, "is disabled"); return; } if(!was_started(test->status)) { fprintf(stderr, "Error: %s was not started due to errors in %s.\n", convert_testfile_name(test->testfile), test->last_file_processed); test_failures++; return; } // The command section has already been dumped. We just // need to dump the STDERR and STDOUT results. test->stdout_match = match_unknown; test->stderr_match = match_unknown; scan_sections(test, &test->testscanner, parse_section_output, &tempref); // if any sections haven't been output, but they differ from // the default, then they need to be output here at the end. if(test->stderr_match == match_unknown && fd_has_data(test, test->errfd)) { write_strconst(test->rewritefd, "STDERR:\n"); write_file(test, test->rewritefd, test->errfd, NULL); } if(test->stdout_match == match_unknown && fd_has_data(test, test->outfd)) { write_strconst(test->rewritefd, "STDOUT:\n"); write_file(test, test->rewritefd, test->outfd, NULL); } }