summaryrefslogtreecommitdiff
path: root/testsuite/gdk/cairo.c
blob: 071ca33767740f1ccbc4cd1db22de7e3b0cce9a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <gtk/gtk.h>

static void
test_set_source_big_pixbuf (void)
{
  cairo_surface_t *surface;
  GdkPixbuf *pixbuf;
  cairo_t *cr;

#define WAY_TOO_BIG 65540

  /* Check that too big really is to big.
   * If this check fails, somebody improved Cairo and this test is useless.
   */
  surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, WAY_TOO_BIG, 1);
  g_assert_cmpint (cairo_surface_status (surface), !=, CAIRO_STATUS_SUCCESS);
  cairo_surface_destroy (surface);

  surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 10, 10);
  cr = cairo_create (surface);
  pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, WAY_TOO_BIG, 1);

  gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
  g_assert_cmpint (cairo_status (cr), !=, CAIRO_STATUS_SUCCESS);

  g_object_unref (pixbuf);
  cairo_destroy (cr);
  cairo_surface_destroy (surface);
}

int
main (int argc, char *argv[])
{
  g_test_init (&argc, &argv, NULL);
  gtk_init ();

  g_test_add_func ("/drawing/set-source-big-pixbuf", test_set_source_big_pixbuf);

  return g_test_run ();
}