int main(int argc, char *argv[]) { int exit_status = 0; init_testing(); if(argc == 1) { process_file(stdin, stdout); } else { FILE *ifp; int i; for(i = 1; i < argc; ++i) { if(strcmp(argv[i], "-") == 0) { ifp = stdin; printf("# [stdin]\n"); } else if((ifp = fopen(argv[i], "r")) == NULL) { fprintf(stderr, "Cannot open '%s': %s\n", argv[i], strerror(errno)); return 1; } else { printf("# %s\n", argv[i]); } if(process_file(ifp, stdout) != 0) exit_status = 1; fclose(ifp); } } return exit_status; }
int main(int argc, char** argv) { const char* test_name = NULL; int i = 1; test_suite suite; test_runner = run_test_in_child; fallback_function = exit_fallback; while (i < argc) { if (*(argv[i]) != '-') { test_name = argv[i]; break; } else { switch (*(argv[i]+1)) { case 'f': test_runner = run_test_in_child; break; case 's': test_runner = run_test; break; case 'S': test_runner = run_test_with_siglongjmp; fallback_function = siglongjmp_fallback; break; case 'v': verbose_mode = TRUE; break; case 'h': printUsage(argv[0]); return OK; default: fprintf(stderr, "Invalid option: %s\n", argv[i]); printUsage(argv[0]); return USAGE; } } ++i; } if (!init_testing()) { fprintf(stderr, "Unable to initialize testing runtime\n"); return TEST_INIT; } suite = get_suite(); if (!run_tests(suite, test_name)) { return TEST_NOT_FOUND; } printResults(); release_suite(suite); return (cleanup_testing()) ? OK : TEST_CLEANUP; }