Merge lp:~ted/ido/gtest into lp:ido/12.10

Proposed by Ted Gould
Status: Merged
Merged at revision: 109
Proposed branch: lp:~ted/ido/gtest
Merge into: lp:ido/12.10
Diff against target: 303 lines (+232/-1)
7 files modified
.bzrignore (+4/-0)
Makefile.am (+1/-1)
configure.ac (+8/-0)
m4/gtest.m4 (+63/-0)
src/idorange.h (+2/-0)
tests/Makefile.am (+52/-0)
tests/gtest-menuitems.cpp (+102/-0)
To merge this branch: bzr merge lp:~ted/ido/gtest
Reviewer Review Type Date Requested Status
jenkins (community) continuous-integration Approve
Charles Kerr (community) Needs Fixing
Review via email: mp+103564@code.launchpad.net

Description of the change

Adding the gtest framework and a few tests to make sure our menu items can be created and realized.

To post a comment you must log in.
Revision history for this message
Charles Kerr (charlesk) wrote :

ted, looks like this diff is missing the implementation of CHECK_XORG_GTEST.

Did you mean to bzr add another file into m4/ ?

review: Needs Fixing
Revision history for this message
Charles Kerr (charlesk) wrote :

d'oh, libxorg-gtest-dev

Revision history for this message
jenkins (martin-mrazik+qa) wrote :

PASSED: Continuous integration, rev:119
http://jenkins.qa.ubuntu.com/job/ido-ci/3/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/ido-ci/./label=precise/3/console

review: Approve (continuous-integration)
Revision history for this message
Charles Kerr (charlesk) wrote :

This was merged awhile back in revno: 109, finally closing out the merge requests and marking this as Merged.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.bzrignore'
--- .bzrignore 2011-09-16 19:34:54 +0000
+++ .bzrignore 2012-04-25 20:33:21 +0000
@@ -28,3 +28,7 @@
28src/libido3-0.1.la28src/libido3-0.1.la
29src/stamp-idotypebuiltins.h29src/stamp-idotypebuiltins.h
30m430m4
31m4/gtk-doc.m4
32.deps
33.libs
34gtest-menuitems
3135
=== modified file 'Makefile.am'
--- Makefile.am 2012-03-28 04:50:43 +0000
+++ Makefile.am 2012-04-25 20:33:21 +0000
@@ -10,7 +10,7 @@
10Q = $(V:1=)10Q = $(V:1=)
11QUIET_GEN = $(Q:@=@echo ' GEN '$@;)11QUIET_GEN = $(Q:@=@echo ' GEN '$@;)
1212
13SUBDIRS = src example13SUBDIRS = src example tests
1414
15%-0.1.pc: %.pc15%-0.1.pc: %.pc
16 $(QUIET_GEN) cp -f $< $@16 $(QUIET_GEN) cp -f $< $@
1717
=== modified file 'configure.ac'
--- configure.ac 2012-04-12 15:18:01 +0000
+++ configure.ac 2012-04-25 20:33:21 +0000
@@ -57,6 +57,7 @@
57# Checks for programs57# Checks for programs
58AC_PROG_CC58AC_PROG_CC
59AM_PROG_CC_C_O59AM_PROG_CC_C_O
60AC_PROG_CXX
6061
61# Initialize libtool62# Initialize libtool
62LT_PREREQ([2.2])63LT_PREREQ([2.2])
@@ -128,6 +129,12 @@
128AC_SUBST(COVERAGE_CXXFLAGS)129AC_SUBST(COVERAGE_CXXFLAGS)
129AC_SUBST(COVERAGE_LDFLAGS)130AC_SUBST(COVERAGE_LDFLAGS)
130131
132dnl = Google Test Framework ===================================================
133
134m4_include([m4/gtest.m4])
135CHECK_GTEST
136CHECK_XORG_GTEST
137
131dnl = GTK Doc Check ===========================================================138dnl = GTK Doc Check ===========================================================
132139
133GTK_DOC_CHECK([1.8])140GTK_DOC_CHECK([1.8])
@@ -138,6 +145,7 @@
138 Makefile145 Makefile
139 src/Makefile146 src/Makefile
140 example/Makefile147 example/Makefile
148 tests/Makefile
141 libido.pc149 libido.pc
142 libido3.pc150 libido3.pc
143])151])
144152
=== added file 'm4/gtest.m4'
--- m4/gtest.m4 1970-01-01 00:00:00 +0000
+++ m4/gtest.m4 2012-04-25 20:33:21 +0000
@@ -0,0 +1,63 @@
1# Copyright (C) 2012 Canonical, Ltd.
2#
3# Permission is hereby granted, free of charge, to any person obtaining a copy
4# of this software and associated documentation files (the "Software"), to deal
5# in the Software without restriction, including without limitation the rights
6# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7# copies of the Software, and to permit persons to whom the Software is
8# furnished to do so, subject to the following conditions:
9#
10# The above copyright notice and this permission notice (including the next
11# paragraph) shall be included in all copies or substantial portions of the
12# Software.
13#
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20# SOFTWARE.
21
22# Checks whether the gtest source is available on the system. Allows for
23# adjusting the include and source path. Sets have_gtest=yes if the source is
24# present. Sets GTEST_CPPFLAGS and GTEST_SOURCE to the preprocessor flags and
25# source location respectively.
26AC_DEFUN([CHECK_GTEST],
27[
28 AC_ARG_WITH([gtest-include-path],
29 [AS_HELP_STRING([--with-gtest-include-path],
30 [location of the Google test headers])],
31 [GTEST_CPPFLAGS="-I$withval"])
32
33 AC_ARG_WITH([gtest-source-path],
34 [AS_HELP_STRING([--with-gtest-source-path],
35 [location of the Google test sources, defaults to /usr/src/gtest])],
36 [GTEST_SOURCE="$withval"],
37 [GTEST_SOURCE="/usr/src/gtest"])
38
39 GTEST_CPPFLAGS="$GTEST_CPPFLAGS -I$GTEST_SOURCE"
40
41 AC_LANG_PUSH([C++])
42
43 tmp_CPPFLAGS="$CPPFLAGS"
44 CPPFLAGS="$CPPFLAGS $GTEST_CPPFLAGS"
45
46 AC_CHECK_HEADER([gtest/gtest.h])
47
48 CPPFLAGS="$tmp_CPPFLAGS"
49
50 AC_LANG_POP
51
52 AC_CHECK_FILES([$GTEST_SOURCE/src/gtest-all.cc]
53 [$GTEST_SOURCE/src/gtest_main.cc],
54 [have_gtest_source=yes],
55 [have_gtest_source=no])
56
57 AS_IF([test "x$ac_cv_header_gtest_gtest_h" = xyes -a \
58 "x$have_gtest_source" = xyes],
59 [have_gtest=yes]
60 [AC_SUBST(GTEST_CPPFLAGS)]
61 [AC_SUBST(GTEST_SOURCE)],
62 [have_gtest=no])
63]) # CHECK_GTEST
064
=== modified file 'src/idorange.h'
--- src/idorange.h 2011-10-05 17:41:37 +0000
+++ src/idorange.h 2012-04-25 20:33:21 +0000
@@ -28,6 +28,8 @@
2828
29#include <gtk/gtk.h>29#include <gtk/gtk.h>
3030
31G_BEGIN_DECLS
32
31#define IDO_TYPE_RANGE (ido_range_get_type ())33#define IDO_TYPE_RANGE (ido_range_get_type ())
32#define IDO_RANGE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), IDO_TYPE_RANGE, IdoRange))34#define IDO_RANGE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), IDO_TYPE_RANGE, IdoRange))
33#define IDO_RANGE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), IDO_TYPE_RANGE, IdoRangeClass))35#define IDO_RANGE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), IDO_TYPE_RANGE, IdoRangeClass))
3436
=== added directory 'tests'
=== added file 'tests/Makefile.am'
--- tests/Makefile.am 1970-01-01 00:00:00 +0000
+++ tests/Makefile.am 2012-04-25 20:33:21 +0000
@@ -0,0 +1,52 @@
1if USE_GTK3
2VER=3
3IDOLIB = $(top_builddir)/src/libido3-0.1.la
4else
5VER=
6IDOLIB = $(top_builddir)/src/libido-0.1.la
7endif
8
9check_LIBRARIES = libgtest.a
10check_PROGRAMS =
11TESTS =
12
13AM_CPPFLAGS = \
14 $(GTEST_CPPFLAGS) \
15 -I${top_srcdir}/src
16
17#############################
18# Google Test base library
19#############################
20
21nodist_libgtest_a_SOURCES = \
22 $(XORG_GTEST_SOURCE)/src/xorg-gtest-all.cpp \
23 $(GTEST_SOURCE)/src/gtest-all.cc \
24 $(XORG_GTEST_SOURCE)/src/xorg-gtest_main.cpp
25libgtest_a_CPPFLAGS = \
26 $(XORG_GTEST_CPPFLAGS) \
27 $(AM_CPPFLAGS) \
28 $(GTEST_CPPFLAGS) -w
29libgtest_a_CXXFLAGS = \
30 $(AM_CXXFLAGS)
31
32#############################
33# Menuitem tests
34#############################
35
36TESTS += gtest-menuitems
37check_PROGRAMS += gtest-menuitems
38
39gtest_menuitems_SOURCES = \
40 gtest-menuitems.cpp
41gtest_menuitems_CPPFLAGS = \
42 $(GCC_CFLAGS) \
43 $(GTK_CFLAGS) \
44 $(MAINTAINER_CFLAGS) \
45 $(AM_CPPFLAGS)
46gtest_menuitems_LDFLAGS = \
47 -pthread
48gtest_menuitems_LDADD = \
49 $(GTK_LIBS) \
50 $(IDOLIB) \
51 libgtest.a
52
053
=== added file 'tests/gtest-menuitems.cpp'
--- tests/gtest-menuitems.cpp 1970-01-01 00:00:00 +0000
+++ tests/gtest-menuitems.cpp 2012-04-25 20:33:21 +0000
@@ -0,0 +1,102 @@
1
2#include <gtk/gtk.h>
3#include <gtest/gtest.h>
4#include "idocalendarmenuitem.h"
5#include "idoentrymenuitem.h"
6#include "idoscalemenuitem.h"
7
8class TestMenuitems : public ::testing::Test
9{
10public:
11 TestMenuitems()
12 {
13 gint argc = 0;
14 gchar * argv[] = {NULL};
15 gtk_init(&argc, (gchar ***)&argv);
16 return;
17 }
18};
19
20TEST_F(TestMenuitems, BuildCalendar) {
21 GtkWidget * cal = ido_calendar_menu_item_new();
22
23 EXPECT_TRUE(cal != NULL);
24 EXPECT_TRUE(IDO_IS_CALENDAR_MENU_ITEM(cal));
25 EXPECT_TRUE(GTK_IS_MENU_ITEM(cal));
26
27 GtkWidget * menu = gtk_menu_new();
28 gtk_widget_show(menu);
29 gtk_menu_shell_append(GTK_MENU_SHELL(menu), cal);
30
31 gtk_widget_show(cal);
32 gtk_widget_realize(cal);
33
34 EXPECT_TRUE(gtk_widget_get_realized(cal));
35
36 g_object_ref_sink(menu);
37 g_object_unref(menu);
38 return;
39}
40
41TEST_F(TestMenuitems, BuildEntry) {
42 GtkWidget * entry = ido_entry_menu_item_new();
43
44 EXPECT_TRUE(entry != NULL);
45 EXPECT_TRUE(IDO_IS_ENTRY_MENU_ITEM(entry));
46 EXPECT_TRUE(GTK_IS_MENU_ITEM(entry));
47
48 GtkWidget * menu = gtk_menu_new();
49 gtk_widget_show(menu);
50 gtk_menu_shell_append(GTK_MENU_SHELL(menu), entry);
51
52 gtk_widget_show(entry);
53 gtk_widget_realize(entry);
54
55 EXPECT_TRUE(gtk_widget_get_realized(entry));
56
57 g_object_ref_sink(menu);
58 g_object_unref(menu);
59 return;
60}
61
62TEST_F(TestMenuitems, BuildScaleDefault) {
63 GtkWidget * scale = ido_scale_menu_item_new("Label", IDO_RANGE_STYLE_DEFAULT, gtk_adjustment_new(0.5, 0.0, 1.0, 0.01, 0.1, 0.1));
64
65 EXPECT_TRUE(scale != NULL);
66 EXPECT_TRUE(IDO_IS_SCALE_MENU_ITEM(scale));
67 EXPECT_TRUE(GTK_IS_MENU_ITEM(scale));
68
69 GtkWidget * menu = gtk_menu_new();
70 gtk_widget_show(menu);
71 gtk_menu_shell_append(GTK_MENU_SHELL(menu), scale);
72
73 gtk_widget_show(scale);
74 gtk_widget_realize(scale);
75
76 EXPECT_TRUE(gtk_widget_get_realized(scale));
77
78 g_object_ref_sink(menu);
79 g_object_unref(menu);
80 return;
81}
82
83TEST_F(TestMenuitems, BuildScaleSmall) {
84 GtkWidget * scale = ido_scale_menu_item_new("Label", IDO_RANGE_STYLE_SMALL, gtk_adjustment_new(0.5, 0.0, 1.0, 0.01, 0.1, 0.1));
85
86 EXPECT_TRUE(scale != NULL);
87 EXPECT_TRUE(IDO_IS_SCALE_MENU_ITEM(scale));
88 EXPECT_TRUE(GTK_IS_MENU_ITEM(scale));
89
90 GtkWidget * menu = gtk_menu_new();
91 gtk_widget_show(menu);
92 gtk_menu_shell_append(GTK_MENU_SHELL(menu), scale);
93
94 gtk_widget_show(scale);
95 gtk_widget_realize(scale);
96
97 EXPECT_TRUE(gtk_widget_get_realized(scale));
98
99 g_object_ref_sink(menu);
100 g_object_unref(menu);
101 return;
102}

Subscribers

People subscribed via source and target branches