static void run_test (struct wine_test* test, const char* subtest) { int status; const char* file = get_test_source_file(test->name, subtest); const char* rev = get_file_rev(file); char *cmd = strmake (NULL, "%s %s", test->exename, subtest); xprintf ("%s:%s start %s %s\n", test->name, subtest, file, rev); status = run_ex (cmd, NULL, 120000); free (cmd); xprintf ("%s:%s done (%d)\n", test->name, subtest, status); }
void AnalyzeTask::run() { try { run_ex(); } catch(const std::exception &error) { MUTILS_PRINT_ERROR("\nGURU MEDITATION !!!\n\nException error:\n%s\n", error.what()); MUtils::OS::fatal_exit(L"Unhandeled C++ exception error, application will exit!"); } catch(...) { MUTILS_PRINT_ERROR("\nGURU MEDITATION !!!\n\nUnknown exception error!\n"); MUtils::OS::fatal_exit(L"Unhandeled C++ exception error, application will exit!"); } }
void AnalyzeTask::run() { try { run_ex(); } catch(const std::exception &error) { fflush(stdout); fflush(stderr); fprintf(stderr, "\nGURU MEDITATION !!!\n\nException error:\n%s\n", error.what()); lamexp_fatal_exit(L"Unhandeled C++ exception error, application will exit!"); } catch(...) { fflush(stdout); fflush(stderr); fprintf(stderr, "\nGURU MEDITATION !!!\n\nUnknown exception error!\n"); lamexp_fatal_exit(L"Unhandeled C++ exception error, application will exit!"); } }
static void get_subtests (const char *tempdir, struct wine_test *test, int id) { char *subname, *cmd; FILE *subfile; size_t total; char buffer[8192], *index; static const char header[] = "Valid test names:"; int allocated; test->subtest_count = 0; subname = tempnam (0, "sub"); if (!subname) report (R_FATAL, "Can't name subtests file."); extract_test (test, tempdir, id); cmd = strmake (NULL, "%s --list", test->exename); run_ex (cmd, subname, 5000); free (cmd); subfile = fopen (subname, "r"); if (!subfile) { report (R_ERROR, "Can't open subtests output of %s: %d", test->name, errno); goto quit; } total = fread (buffer, 1, sizeof buffer, subfile); fclose (subfile); if (sizeof buffer == total) { report (R_ERROR, "Subtest list of %s too big.", test->name, sizeof buffer); goto quit; } buffer[total] = 0; index = strstr (buffer, header); if (!index) { report (R_ERROR, "Can't parse subtests output of %s", test->name); goto quit; } index += sizeof header; allocated = 10; test->subtests = xmalloc (allocated * sizeof(char*)); index = strtok (index, whitespace); while (index) { if (test->subtest_count == allocated) { allocated *= 2; test->subtests = xrealloc (test->subtests, allocated * sizeof(char*)); } test->subtests[test->subtest_count++] = strdup (index); index = strtok (NULL, whitespace); } test->subtests = xrealloc (test->subtests, test->subtest_count * sizeof(char*)); quit: if (remove (subname)) report (R_WARNING, "Can't delete file '%s': %d", subname, errno); free (subname); }