Merge lp:~percona-toolkit-dev/percona-toolkit/fix-1073532-Mo-Scalar-Util-PP into lp:percona-toolkit/2.1

Proposed by Brian Fraser
Status: Merged
Approved by: Daniel Nichter
Approved revision: 442
Merged at revision: 447
Proposed branch: lp:~percona-toolkit-dev/percona-toolkit/fix-1073532-Mo-Scalar-Util-PP
Merge into: lp:percona-toolkit/2.1
Diff against target: 409 lines (+114/-61)
12 files modified
bin/pt-archiver (+7/-6)
bin/pt-deadlock-logger (+7/-6)
bin/pt-kill (+7/-6)
bin/pt-online-schema-change (+7/-6)
bin/pt-slave-delay (+7/-6)
bin/pt-slave-find (+7/-6)
bin/pt-slave-restart (+7/-6)
bin/pt-table-checksum (+7/-6)
bin/pt-variable-advisor (+7/-6)
lib/Mo.pm (+7/-7)
t/lib/Mo/isa.t (+16/-0)
t/lib/Mo/isa_subtest.pm (+28/-0)
To merge this branch: bzr merge lp:~percona-toolkit-dev/percona-toolkit/fix-1073532-Mo-Scalar-Util-PP
Reviewer Review Type Date Requested Status
Daniel Nichter Approve
Review via email: mp+132353@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Daniel Nichter (daniel-nichter) wrote :

+my $pm_test = File::Spec->catfile($PerconaTest::trunk, qw(t lib Mo isa_subtest.pm));

both otherwise it passes tests.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/pt-archiver'
2--- bin/pt-archiver 2012-10-31 01:12:57 +0000
3+++ bin/pt-archiver 2012-10-31 15:31:23 +0000
4@@ -1104,14 +1104,15 @@
5 use warnings qw( FATAL all );
6
7 use Carp ();
8-use Scalar::Util ();
9+use Scalar::Util qw(looks_like_number blessed);
10+
11
12 our %TYPES = (
13- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
14- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
15- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
16+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
17+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
18+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
19 Str => sub { defined $_[0] },
20- Object => sub { defined $_[0] && &Scalar::Util::blessed },
21+ Object => sub { defined $_[0] && blessed($_[0]) },
22 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
23
24 map {
25@@ -1285,7 +1286,7 @@
26 $method = sub {
27 if ( $#_ ) {
28 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
29- unless blessed($_[1]) && $_[1]->does($role)
30+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
31 }
32 goto &$original_method
33 };
34
35=== modified file 'bin/pt-deadlock-logger'
36--- bin/pt-deadlock-logger 2012-10-31 09:18:34 +0000
37+++ bin/pt-deadlock-logger 2012-10-31 15:31:23 +0000
38@@ -1101,14 +1101,15 @@
39 use warnings qw( FATAL all );
40
41 use Carp ();
42-use Scalar::Util ();
43+use Scalar::Util qw(looks_like_number blessed);
44+
45
46 our %TYPES = (
47- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
48- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
49- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
50+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
51+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
52+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
53 Str => sub { defined $_[0] },
54- Object => sub { defined $_[0] && &Scalar::Util::blessed },
55+ Object => sub { defined $_[0] && blessed($_[0]) },
56 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
57
58 map {
59@@ -1282,7 +1283,7 @@
60 $method = sub {
61 if ( $#_ ) {
62 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
63- unless blessed($_[1]) && $_[1]->does($role)
64+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
65 }
66 goto &$original_method
67 };
68
69=== modified file 'bin/pt-kill'
70--- bin/pt-kill 2012-10-31 09:18:34 +0000
71+++ bin/pt-kill 2012-10-31 15:31:23 +0000
72@@ -1108,14 +1108,15 @@
73 use warnings qw( FATAL all );
74
75 use Carp ();
76-use Scalar::Util ();
77+use Scalar::Util qw(looks_like_number blessed);
78+
79
80 our %TYPES = (
81- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
82- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
83- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
84+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
85+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
86+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
87 Str => sub { defined $_[0] },
88- Object => sub { defined $_[0] && &Scalar::Util::blessed },
89+ Object => sub { defined $_[0] && blessed($_[0]) },
90 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
91
92 map {
93@@ -1289,7 +1290,7 @@
94 $method = sub {
95 if ( $#_ ) {
96 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
97- unless blessed($_[1]) && $_[1]->does($role)
98+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
99 }
100 goto &$original_method
101 };
102
103=== modified file 'bin/pt-online-schema-change'
104--- bin/pt-online-schema-change 2012-10-31 09:18:34 +0000
105+++ bin/pt-online-schema-change 2012-10-31 15:31:23 +0000
106@@ -1114,14 +1114,15 @@
107 use warnings qw( FATAL all );
108
109 use Carp ();
110-use Scalar::Util ();
111+use Scalar::Util qw(looks_like_number blessed);
112+
113
114 our %TYPES = (
115- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
116- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
117- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
118+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
119+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
120+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
121 Str => sub { defined $_[0] },
122- Object => sub { defined $_[0] && &Scalar::Util::blessed },
123+ Object => sub { defined $_[0] && blessed($_[0]) },
124 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
125
126 map {
127@@ -1295,7 +1296,7 @@
128 $method = sub {
129 if ( $#_ ) {
130 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
131- unless blessed($_[1]) && $_[1]->does($role)
132+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
133 }
134 goto &$original_method
135 };
136
137=== modified file 'bin/pt-slave-delay'
138--- bin/pt-slave-delay 2012-10-31 09:18:34 +0000
139+++ bin/pt-slave-delay 2012-10-31 15:31:23 +0000
140@@ -1101,14 +1101,15 @@
141 use warnings qw( FATAL all );
142
143 use Carp ();
144-use Scalar::Util ();
145+use Scalar::Util qw(looks_like_number blessed);
146+
147
148 our %TYPES = (
149- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
150- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
151- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
152+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
153+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
154+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
155 Str => sub { defined $_[0] },
156- Object => sub { defined $_[0] && &Scalar::Util::blessed },
157+ Object => sub { defined $_[0] && blessed($_[0]) },
158 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
159
160 map {
161@@ -1282,7 +1283,7 @@
162 $method = sub {
163 if ( $#_ ) {
164 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
165- unless blessed($_[1]) && $_[1]->does($role)
166+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
167 }
168 goto &$original_method
169 };
170
171=== modified file 'bin/pt-slave-find'
172--- bin/pt-slave-find 2012-10-31 09:18:34 +0000
173+++ bin/pt-slave-find 2012-10-31 15:31:23 +0000
174@@ -1080,14 +1080,15 @@
175 use warnings qw( FATAL all );
176
177 use Carp ();
178-use Scalar::Util ();
179+use Scalar::Util qw(looks_like_number blessed);
180+
181
182 our %TYPES = (
183- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
184- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
185- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
186+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
187+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
188+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
189 Str => sub { defined $_[0] },
190- Object => sub { defined $_[0] && &Scalar::Util::blessed },
191+ Object => sub { defined $_[0] && blessed($_[0]) },
192 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
193
194 map {
195@@ -1261,7 +1262,7 @@
196 $method = sub {
197 if ( $#_ ) {
198 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
199- unless blessed($_[1]) && $_[1]->does($role)
200+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
201 }
202 goto &$original_method
203 };
204
205=== modified file 'bin/pt-slave-restart'
206--- bin/pt-slave-restart 2012-10-31 09:18:34 +0000
207+++ bin/pt-slave-restart 2012-10-31 15:31:23 +0000
208@@ -1222,14 +1222,15 @@
209 use warnings qw( FATAL all );
210
211 use Carp ();
212-use Scalar::Util ();
213+use Scalar::Util qw(looks_like_number blessed);
214+
215
216 our %TYPES = (
217- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
218- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
219- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
220+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
221+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
222+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
223 Str => sub { defined $_[0] },
224- Object => sub { defined $_[0] && &Scalar::Util::blessed },
225+ Object => sub { defined $_[0] && blessed($_[0]) },
226 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
227
228 map {
229@@ -1403,7 +1404,7 @@
230 $method = sub {
231 if ( $#_ ) {
232 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
233- unless blessed($_[1]) && $_[1]->does($role)
234+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
235 }
236 goto &$original_method
237 };
238
239=== modified file 'bin/pt-table-checksum'
240--- bin/pt-table-checksum 2012-10-31 09:18:34 +0000
241+++ bin/pt-table-checksum 2012-10-31 15:31:23 +0000
242@@ -2774,14 +2774,15 @@
243 use warnings qw( FATAL all );
244
245 use Carp ();
246-use Scalar::Util ();
247+use Scalar::Util qw(looks_like_number blessed);
248+
249
250 our %TYPES = (
251- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
252- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
253- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
254+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
255+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
256+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
257 Str => sub { defined $_[0] },
258- Object => sub { defined $_[0] && &Scalar::Util::blessed },
259+ Object => sub { defined $_[0] && blessed($_[0]) },
260 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
261
262 map {
263@@ -2955,7 +2956,7 @@
264 $method = sub {
265 if ( $#_ ) {
266 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
267- unless blessed($_[1]) && $_[1]->does($role)
268+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
269 }
270 goto &$original_method
271 };
272
273=== modified file 'bin/pt-variable-advisor'
274--- bin/pt-variable-advisor 2012-10-31 09:18:34 +0000
275+++ bin/pt-variable-advisor 2012-10-31 15:31:23 +0000
276@@ -1105,14 +1105,15 @@
277 use warnings qw( FATAL all );
278
279 use Carp ();
280-use Scalar::Util ();
281+use Scalar::Util qw(looks_like_number blessed);
282+
283
284 our %TYPES = (
285- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
286- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
287- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
288+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
289+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
290+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
291 Str => sub { defined $_[0] },
292- Object => sub { defined $_[0] && &Scalar::Util::blessed },
293+ Object => sub { defined $_[0] && blessed($_[0]) },
294 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
295
296 map {
297@@ -1286,7 +1287,7 @@
298 $method = sub {
299 if ( $#_ ) {
300 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
301- unless blessed($_[1]) && $_[1]->does($role)
302+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
303 }
304 goto &$original_method
305 };
306
307=== modified file 'lib/Mo.pm'
308--- lib/Mo.pm 2012-07-11 18:04:50 +0000
309+++ lib/Mo.pm 2012-10-31 15:31:23 +0000
310@@ -41,19 +41,19 @@
311 use warnings qw( FATAL all );
312
313 use Carp ();
314-use Scalar::Util ();
315+use Scalar::Util qw(looks_like_number blessed);
316
317 # Basic types for isa. If you want a new type, either add it here,
318 # or give isa a coderef.
319+
320 our %TYPES = (
321- Bool => sub { !$_[0] || (defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == 1) },
322- Num => sub { defined $_[0] && &Scalar::Util::looks_like_number },
323- Int => sub { defined $_[0] && &Scalar::Util::looks_like_number && $_[0] == int $_[0] },
324+ Bool => sub { !$_[0] || (defined $_[0] && looks_like_number($_[0]) && $_[0] == 1) },
325+ Num => sub { defined $_[0] && looks_like_number($_[0]) },
326+ Int => sub { defined $_[0] && looks_like_number($_[0]) && $_[0] == int($_[0]) },
327 Str => sub { defined $_[0] },
328- Object => sub { defined $_[0] && &Scalar::Util::blessed },
329+ Object => sub { defined $_[0] && blessed($_[0]) },
330 FileHandle => sub { local $@; require IO::Handle; fileno($_[0]) && $_[0]->opened },
331
332- # Ref types:
333 map {
334 my $type = /R/ ? $_ : uc $_;
335 $_ . "Ref" => sub { ref $_[0] eq $type }
336@@ -245,7 +245,7 @@
337 $method = sub {
338 if ( $#_ ) {
339 Carp::confess(qq<Attribute ($attribute) doesn't consume a '$role' role">)
340- unless blessed($_[1]) && $_[1]->does($role)
341+ unless Scalar::Util::blessed($_[1]) && eval { $_[1]->does($role) }
342 }
343 goto &$original_method
344 };
345
346=== modified file 't/lib/Mo/isa.t'
347--- t/lib/Mo/isa.t 2012-07-19 21:38:35 +0000
348+++ t/lib/Mo/isa.t 2012-10-31 15:31:23 +0000
349@@ -9,6 +9,7 @@
350 use strict;
351 use warnings FATAL => 'all';
352 use English qw(-no_match_vars);
353+use PerconaTest ();
354 use Test::More;
355
356 sub dies_ok (&;$) {
357@@ -182,4 +183,19 @@
358 my $method = "my$type";
359 dies_ok { $foo->$method(undef) } "$type attr set to undef dies" }
360
361+
362+use Config;
363+use File::Spec;
364+use IPC::Cmd ();
365+my $thisperl = $^X;
366+if ($^O ne 'VMS')
367+ {$thisperl .= $Config{_exe} unless $thisperl =~ m/$Config{_exe}$/i;}
368+
369+my $pm_test = File::Spec->catfile($PerconaTest::trunk, qw(t lib Mo isa_subtest.pm));
370+
371+ok(
372+ scalar(IPC::Cmd::run(command => [$thisperl, $pm_test])),
373+ "Mo types work with Scalar::Util::PP",
374+);
375+
376 done_testing;
377
378=== added file 't/lib/Mo/isa_subtest.pm'
379--- t/lib/Mo/isa_subtest.pm 1970-01-01 00:00:00 +0000
380+++ t/lib/Mo/isa_subtest.pm 2012-10-31 15:31:23 +0000
381@@ -0,0 +1,28 @@
382+BEGIN {
383+ require Scalar::Util::PP;
384+ *Scalar::Util:: = \*Scalar::Util::PP::;
385+ $INC{"Scalar/Util.pm"} = __FILE__;
386+};
387+
388+BEGIN {
389+ die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
390+ unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
391+ unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
392+};
393+
394+use strict;
395+use warnings;
396+
397+{
398+ package isa_subtest;
399+ use Mo;
400+
401+ has attr => (
402+ is => 'rw',
403+ isa => 'Int',
404+ );
405+
406+ 1;
407+}
408+
409+isa_subtest->new(attr => 100);

Subscribers

People subscribed via source and target branches