From 431227e1af8123897d112ec9201140b3922b572d Mon Sep 17 00:00:00 2001 From: Michael Terry Date: Fri, 26 Aug 2011 16:15:36 +0200 Subject: [PATCH] tests: Add test for non-nullterminated gtk_css_provider_load_data() https://bugzilla.gnome.org/show_bug.cgi?id=657359 --- tests/css/Makefile.am | 21 +++++++++++++++++++ tests/css/api.c | 49 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 tests/css/api.c diff --git a/tests/css/Makefile.am b/tests/css/Makefile.am index aeada80b30..f14e7b59b2 100644 --- a/tests/css/Makefile.am +++ b/tests/css/Makefile.am @@ -1 +1,22 @@ +include $(top_srcdir)/Makefile.decl + SUBDIRS = parser + +check_PROGRAMS = $(TEST_PROGS) + +AM_CPPFLAGS = \ + -I$(top_srcdir) \ + -I$(top_builddir)/gdk \ + -I$(top_srcdir)/gdk \ + -DGDK_DISABLE_DEPRECATED \ + -DGTK_DISABLE_DEPRECATED \ + -DGTK_VERSION=\"$(GTK_VERSION)\"\ + $(GTK_DEBUG_FLAGS) \ + $(GTK_DEP_CFLAGS) + +LDADD = \ + $(top_builddir)/gdk/libgdk-3.la \ + $(top_builddir)/gtk/libgtk-3.la \ + $(GTK_DEP_LIBS) + +TEST_PROGS += api diff --git a/tests/css/api.c b/tests/css/api.c new file mode 100644 index 0000000000..a7c93dc4b2 --- /dev/null +++ b/tests/css/api.c @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2011 Canonical Inc. + * + * Author: + * Michael Terry + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include + +static void +gtk_css_provider_load_data_not_null_terminated (void) +{ + GtkCssProvider *p; + const gchar data[3] = {'*', '{', '}'}; + + p = gtk_css_provider_new(); + + gtk_css_provider_load_from_data(p, data, sizeof (data), NULL); + + g_object_unref (p); +} + + +int +main (int argc, char *argv[]) +{ + gtk_test_init (&argc, &argv, NULL); + + g_test_add_func ("/gtk_css_provider_load_data/not_null_terminated", + gtk_css_provider_load_data_not_null_terminated); + + return g_test_run (); +} +