[libgtk2-perl] 01/02: Make_t_GtkCellRenderer.t_more_robust.patch: new patch, proposed by upstream on their bug tracker to address #746761.

Intrigeri intrigeri at moszumanska.debian.org
Sun Aug 10 12:47:14 UTC 2014


This is an automated email from the git hooks/post-receive script.

intrigeri pushed a commit to branch master
in repository libgtk2-perl.

commit 614b042b1332e2580c2bdfaac64caac902141042
Author: intrigeri <intrigeri at boum.org>
Date:   Sun Aug 10 12:40:07 2014 +0000

    Make_t_GtkCellRenderer.t_more_robust.patch: new patch, proposed by upstream on their bug tracker to address #746761.
---
 .../Make_t_GtkCellRenderer.t_more_robust.patch     | 203 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 2 files changed, 204 insertions(+)

diff --git a/debian/patches/Make_t_GtkCellRenderer.t_more_robust.patch b/debian/patches/Make_t_GtkCellRenderer.t_more_robust.patch
new file mode 100644
index 0000000..859a335
--- /dev/null
+++ b/debian/patches/Make_t_GtkCellRenderer.t_more_robust.patch
@@ -0,0 +1,203 @@
+From 1c188fd09e4cd8e4683568b81f1eafcb886bfaac Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Torsten=20Sch=C3=B6nfeld?= <kaffeetisch at gmx.de>
+Date: Sun, 10 Aug 2014 13:19:10 +0200
+Subject: Make t/GtkCellRenderer.t more robust
+Bug-Debian: https://bugs.debian.org/746761
+
+The tests that check that all vfuncs of custom cell renderers are called
+appropriately were relying on certain behavior of gtk+.  Apparently, that is
+not appropriate on all platforms, as we have failure reports from armhf, mips
+and mipsel.  Make the tests more robust by triggering all vfuncs on all custom
+renderers manually.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=729453
+---
+ t/GtkCellRenderer.t | 99 +++++++++++++++++++++++++----------------------------
+ 1 file changed, 46 insertions(+), 53 deletions(-)
+
+diff --git a/t/GtkCellRenderer.t b/t/GtkCellRenderer.t
+index da02ab3..f34f198 100644
+--- a/t/GtkCellRenderer.t
++++ b/t/GtkCellRenderer.t
+@@ -2,9 +2,11 @@
+ 
+ # $Id$
+ 
+-use Gtk2::TestHelper tests => 26;
++use Gtk2::TestHelper tests => 46;
+ use strict;
+ 
++##########################################################################
++# custom cell renderer
+ package Mup::CellRendererPopup;
+ 
+ use Test::More;
+@@ -22,8 +24,8 @@ sub RENDER { $hits{render}++;  shift->SUPER::RENDER (@_) }
+ sub ACTIVATE { $hits{activate}++;  shift->SUPER::ACTIVATE (@_) }
+ sub START_EDITING { $hits{edit}++;  shift->SUPER::START_EDITING (@_) }
+ 
+-
+-# do that again, in the style of 1.02x, to check for regressions of
++##########################################################################
++# custom cell renderer in the style of 1.02x, to check for regressions of
+ # backward compatibility.
+ package Mup::CellRendererPopupCompat;
+ 
+@@ -44,6 +46,8 @@ sub on_render { $hits_compat{render}++;  shift->parent_render (@_) }
+ sub on_activate { $hits_compat{activate}++;  shift->parent_activate (@_) }
+ sub on_start_editing { $hits_compat{edit}++;  shift->parent_start_editing (@_) }
+ 
++##########################################################################
++# custom cell renderer with newly created entry in START_EDITING
+ package My::CellRendererNewEntry;
+ use strict;
+ use warnings;
+@@ -59,7 +63,6 @@ sub START_EDITING { $hits_newentry{edit}++;
+                     return $entry;
+                   }
+ sub _editable_destroy { $hits_newentry{editable_destroy}++ }
+- 
+ 
+ ##########################################################################
+ # driver code
+@@ -83,7 +86,6 @@ foreach (qw/foo fluffy flurble frob frobnitz ftang fire truck/) {
+ 	$model->set ($iter, 0, $_);
+ }
+ 
+-
+ # now a view
+ my $treeview = Gtk2::TreeView->new ($model);
+ 
+@@ -92,8 +94,9 @@ my $treeview = Gtk2::TreeView->new ($model);
+ #
+ ok (my $renderer = Mup::CellRendererPopup->new, 'Mup::CellRendererPopup->new');
+ $renderer->set (mode => 'editable');
++$renderer->set (editable => 1);
+ my $column = Gtk2::TreeViewColumn->new_with_attributes ('selector', $renderer,
+-                                                     text => 0,);
++                                                        text => 0,);
+ # this handler commits the user's selection to the model.  compare with
+ # the one for the typical text renderer -- the only difference is a var name.
+ $renderer->signal_connect (edited => sub {
+@@ -104,18 +107,17 @@ $renderer->signal_connect (edited => sub {
+ 	}, $model);
+ $treeview->append_column ($column);
+ 
+-
+ #
+-# custom cell renderer
++# custom cell renderer, compat mode
+ #
+-ok ($renderer = Mup::CellRendererPopupCompat->new, 'Mup::CellRendererPopupCompat->new');
+-$renderer->set (mode => 'editable');
+-$renderer->set (editable => 1);
+-my $column_compat = Gtk2::TreeViewColumn->new_with_attributes ('selector', $renderer,
+-                                                     text => 0,);
++ok (my $renderer_compat = Mup::CellRendererPopupCompat->new, 'Mup::CellRendererPopupCompat->new');
++$renderer_compat->set (mode => 'editable');
++$renderer_compat->set (editable => 1);
++my $column_compat = Gtk2::TreeViewColumn->new_with_attributes ('selector', $renderer_compat,
++                                                               text => 0,);
+ # this handler commits the user's selection to the model.  compare with
+ # the one for the typical text renderer -- the only difference is a var name.
+-$renderer->signal_connect (edited => sub {
++$renderer_compat->signal_connect (edited => sub {
+ 		my ($cell, $text_path, $new_text, $model) = @_;
+ 		my $path = Gtk2::TreePath->new_from_string ($text_path);
+ 		my $iter = $model->get_iter ($path);
+@@ -141,7 +143,6 @@ my $column_text = Gtk2::TreeViewColumn->new_with_attributes
+     ('core-text', $renderer_text, text => 0,);
+ $treeview->append_column ($column_text);
+ 
+-
+ ##########################################################################
+ 
+ $vbox->pack_start ($treeview, 1, 1, 0);
+@@ -150,48 +151,38 @@ $window->show_all;
+ 
+ ##########################################################################
+ 
+-isa_ok ($renderer, "Gtk2::CellRenderer");
+-
++#
++# test the vfunc-involving stuff for all renderers
++#
+ my $rect = Gtk2::Gdk::Rectangle->new (5, 5, 10, 10);
+-my @size = $renderer->get_size ($treeview, $rect);
+-is (@size, 4);
+-like($size[0], qr/^\d+$/);
+-like($size[1], qr/^\d+$/);
+-like($size[2], qr/^\d+$/);
+-like($size[3], qr/^\d+$/);
+-
+ my $event = Gtk2::Gdk::Event->new ("button-press");
+-
+-$renderer->render ($window->window, $treeview, $rect, $rect, $rect, [qw(sorted prelit)]);
+-ok(!$renderer->activate ($event, $treeview, "0", $rect, $rect, qw(selected)));
+-{
+-  my $editable = $renderer->start_editing ($event, $treeview, "0", $rect, $rect, qw(selected));
+-  isa_ok ($editable, "Gtk2::Entry");
+-  my $destroyed = 0;
+-  $editable->signal_connect (destroy => sub { $destroyed = 1 });
+-  undef $editable;
+-  is ($destroyed, 1,
+-      'editable from start_editing using SUPER::START_EDITING destroyed when forgotten');
+-}
+-{
+-  my $editable = $renderer_newentry->start_editing ($event, $treeview, "0", $rect, $rect, qw(selected));
+-  isa_ok ($editable, "Gtk2::Entry");
+-  my $destroyed = 0;
+-  $editable->signal_connect (destroy => sub { $destroyed = 1 });
+-  undef $editable;
+-  is ($destroyed, 1,
+-      'editable from start_editing using Gtk2::Entry->new destroyed when forgotten');
+-}
+-{
+-  my $editable = $renderer_text->start_editing ($event, $treeview, "0", $rect, $rect, qw(selected));
+-  isa_ok ($editable, "Gtk2::Entry");
+-  my $destroyed = 0;
+-  $editable->signal_connect (destroy => sub { $destroyed = 1 });
+-  undef $editable;
+-  is ($destroyed, 1,
+-      'editable from start_editing on core GtkCellRendererText destroyed when forgotten');
++foreach my $r ($renderer, $renderer_compat, $renderer_newentry, $renderer_text) {
++	my @size = $r->get_size ($treeview, $rect);
++	is (@size, 4);
++	like($size[0], qr/^\d+$/);
++	like($size[1], qr/^\d+$/);
++	like($size[2], qr/^\d+$/);
++	like($size[3], qr/^\d+$/);
++
++	$r->render ($window->window, $treeview, $rect, $rect, $rect, [qw(sorted prelit)]);
++	ok(!$renderer->activate ($event, $treeview, "0", $rect, $rect, qw(selected)));
++
++	{
++	  my $editable = $r->start_editing ($event, $treeview, "0", $rect, $rect, qw(selected));
++	  isa_ok ($editable, "Gtk2::Entry");
++	  my $destroyed = 0;
++	  $editable->signal_connect (destroy => sub { $destroyed = 1 });
++	  undef $editable;
++	  is ($destroyed, 1,
++	      "editable from start_editing using $r destroyed when forgotten");
++	}
+ }
+ 
++#
++# test the normal stuff just for one renderer
++#
++isa_ok ($renderer, "Gtk2::CellRenderer");
++
+ $renderer->set_fixed_size (23, 42);
+ is_deeply([$renderer->get_fixed_size], [23, 42]);
+ 
+@@ -237,6 +228,8 @@ SKIP: {
+ ##########################################################################
+ 
+ run_main sub {
++	# set the cursor on the various columns, with editing mode on, to
++	# trigger the vfuncs
+ 	$treeview->set_cursor (Gtk2::TreePath->new_from_string ('0'),
+ 	                       $column, 1);
+ 	$treeview->set_cursor (Gtk2::TreePath->new_from_string ('0'),
+-- 
+1.9.1
diff --git a/debian/patches/series b/debian/patches/series
index b9db011..cb81cee 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
+Make_t_GtkCellRenderer.t_more_robust.patch
 30-disable_libgtk_version_check.patch
 fix-typo.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libgtk2-perl.git



More information about the Pkg-perl-cvs-commits mailing list