int main (int argc, char **argv) { guint ui; /* See #578295 */ g_timeout_add_seconds (1, do_nothing, NULL); /* some unices need SA_RESTART for SIGCHLD to return -EAGAIN for io. * we must fiddle with sigaction() *before* glib is used, otherwise * we could revoke signal hanmdler setups from glib initialization code. */ if (TRUE) { struct sigaction sa; struct sigaction osa; sa.sa_handler = SIG_DFL; sigfillset (&sa.sa_mask); sa.sa_flags = SA_RESTART; sigaction (SIGCHLD, &sa, &osa); } g_set_prgname (argv[0]); parse_args (&argc, &argv); if (gtester_selftest) return main_selftest (argc, argv); if (argc <= 1) { usage (FALSE); return 1; } if (output_filename) { log_fd = g_open (output_filename, O_WRONLY | O_CREAT | O_TRUNC, 0666); if (log_fd < 0) g_error ("Failed to open log file '%s': %s", output_filename, g_strerror (errno)); } test_log_printfe ("<?xml version=\"1.0\"?>\n"); test_log_printfe ("%s<gtester>\n", sindent (log_indent)); log_indent += 2; for (ui = 1; ui < argc; ui++) { const char *binary = argv[ui]; launch_test (binary); /* we only get here on success or if !subtest_mode_fatal */ } log_indent -= 2; test_log_printfe ("%s</gtester>\n", sindent (log_indent)); close (log_fd); return testcase_fail_count == 0 ? 0 : 1; }
int main (int argc, char **argv) { guint ui; g_set_prgname (argv[0]); parse_args (&argc, &argv); if (gtester_selftest) return main_selftest (argc, argv); if (argc <= 1) { usage (FALSE); return 1; } if (output_filename) { int errsv; log_fd = g_open (output_filename, O_WRONLY | O_CREAT | O_TRUNC, 0666); errsv = errno; if (log_fd < 0) g_error ("Failed to open log file '%s': %s", output_filename, g_strerror (errsv)); } test_log_printfe ("<?xml version=\"1.0\"?>\n"); test_log_printfe ("%s<gtester>\n", sindent (log_indent)); log_indent += 2; for (ui = 1; ui < argc; ui++) { const char *binary = argv[ui]; launch_test (binary); /* we only get here on success or if !subtest_mode_fatal */ } log_indent -= 2; test_log_printfe ("%s</gtester>\n", sindent (log_indent)); close (log_fd); return testcase_fail_count == 0 ? EXIT_SUCCESS : EXIT_FAILURE; }