Exemple #1
0
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;
}
Exemple #2
0
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;
}