Example #1
0
static void
test_layout (gconstpointer d)
{
  const gchar *filename = d;
  gchar *expected_file;
  GError *error = NULL;
  GString *dump;
  gchar *diff;

  expected_file = get_expected_filename (filename);

  dump = g_string_sized_new (0);

  test_file (filename, dump);

  diff = diff_with_file (expected_file, dump->str, dump->len, &error);
  g_assert_no_error (error);

  if (diff && diff[0])
    {
      g_printerr ("Contents don't match expected contents:\n%s", diff);
      g_test_fail ();
      g_free (diff);
    }

  g_string_free (dump, TRUE);
  g_free (expected_file);
}
static void
test_ui_file (GFile *file)
{
  gchar *ui_file, *in_file, *out_file;
  GString *record;
  GError *error = NULL;

  ui_file = g_file_get_path (file);
  in_file = get_test_file (ui_file, ".in", TRUE);
  out_file = get_test_file (ui_file, ".out", TRUE);
  record = g_string_new ("");

  record_events (ui_file, in_file, record);

  if (out_file)
    {
      char *diff = diff_with_file (out_file, record->str, record->len, &error);
      g_assert_no_error (error);

      if (diff && diff[0])
        {
          g_printerr ("Contents don't match expected contents:\n%s", diff);
          g_test_fail ();
          g_free (diff);
        }
    }
  else if (record->str[0])
    {
      g_test_message ("Expected a reference file:\n%s", record->str);
      g_test_fail ();
    }

  g_string_free (record, TRUE);
  g_free (in_file);
  g_free (out_file);
  g_free (ui_file);
}
Example #3
0
static void
test_css_file (GFile *file)
{
  GtkCssProvider *provider;
  char *css, *diff;
  char *css_file, *reference_file, *errors_file;
  GString *errors;
  GError *error = NULL;

  css_file = g_file_get_path (file);
  errors = g_string_new ("");

  provider = gtk_css_provider_new ();
  g_signal_connect (provider, 
                    "parsing-error",
                    G_CALLBACK (parsing_error_cb),
                    errors);
  gtk_css_provider_load_from_path (provider,
                                   css_file,
                                   NULL);

  css = gtk_css_provider_to_string (provider);

  reference_file = test_get_reference_file (css_file);

  diff = diff_with_file (reference_file, css, -1, &error);
  g_assert_no_error (error);

  if (diff && diff[0])
    {
      g_test_message ("Resulting CSS doesn't match reference:\n%s", diff);
      g_test_fail ();
    }

  g_free (css);
  g_free (reference_file);

  errors_file = test_get_errors_file (css_file);

  if (errors_file)
    {
      diff = diff_with_file (errors_file, errors->str, errors->len, &error);
      g_assert_no_error (error);

      if (diff && diff[0])
        {
          g_test_message ("Errors don't match expected errors:\n%s", diff);
          g_test_fail ();
        }
    }
  else if (errors->str[0])
    {
      g_test_message ("Unexpected errors:\n%s", errors->str);
      g_test_fail ();
    }

  g_free (errors_file);
  g_string_free (errors, TRUE);

  g_free (diff);
  g_free (css_file);
}