r47886 - in /branches/upstream/libperl-minimumversion-perl/current: Changes MANIFEST META.yml Makefile.PL lib/Perl/MinimumVersion.pm t/03_open_3arg.t t/04_substr.t t/07_splice.t t/08_mkdir.t

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Sat Nov 28 23:05:45 UTC 2009


Author: jawnsy-guest
Date: Sat Nov 28 23:05:15 2009
New Revision: 47886

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=47886
Log:
[svn-upgrade] Integrating new upstream version, libperl-minimumversion-perl (1.22)

Added:
    branches/upstream/libperl-minimumversion-perl/current/t/07_splice.t
    branches/upstream/libperl-minimumversion-perl/current/t/08_mkdir.t
Modified:
    branches/upstream/libperl-minimumversion-perl/current/Changes
    branches/upstream/libperl-minimumversion-perl/current/MANIFEST
    branches/upstream/libperl-minimumversion-perl/current/META.yml
    branches/upstream/libperl-minimumversion-perl/current/Makefile.PL
    branches/upstream/libperl-minimumversion-perl/current/lib/Perl/MinimumVersion.pm
    branches/upstream/libperl-minimumversion-perl/current/t/03_open_3arg.t
    branches/upstream/libperl-minimumversion-perl/current/t/04_substr.t

Modified: branches/upstream/libperl-minimumversion-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libperl-minimumversion-perl/current/Changes?rev=47886&op=diff
==============================================================================
--- branches/upstream/libperl-minimumversion-perl/current/Changes (original)
+++ branches/upstream/libperl-minimumversion-perl/current/Changes Sat Nov 28 23:05:15 2009
@@ -1,10 +1,15 @@
 Revision history for Perl extension Perl-MinimumVersion
+
+1.22 Wed  25 Nov 2009
+        - Negative length in 'splice' requires perl 5.5 (Alexandr Ciornii)
+        - 'mkdir' with one argument requires perl 5.6 (Alexandr Ciornii)
+        - 'substr' will not be checked if it is a method name (Alexandr Ciornii)
+        - better tests and fix for 3-arg 'open' (Alexandr Ciornii)
 
 1.21 Tue  24 Nov 2009
         - Add 'bytes' to 5.6 pragma (Alexandr Ciornii)
         - Add support for "version numbers" like "v1.1.1" (Alexandr Ciornii)
-        - Steal argument counting code from Perl::Critic,
-          reimplement _three_argument_open, more tests (Alexandr Ciornii)
+        - Reimplement _three_argument_open, more tests (Alexandr Ciornii)
           Now check for 3-arg open is working.
         - Check 4-arg substr that requires perl 5.5 (Alexandr Ciornii)
         - Postfix foreach requires perl 5.004.05 (Alexandr Ciornii)

Modified: branches/upstream/libperl-minimumversion-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libperl-minimumversion-perl/current/MANIFEST?rev=47886&op=diff
==============================================================================
--- branches/upstream/libperl-minimumversion-perl/current/MANIFEST (original)
+++ branches/upstream/libperl-minimumversion-perl/current/MANIFEST Sat Nov 28 23:05:15 2009
@@ -22,6 +22,8 @@
 t/04_substr.t
 t/05_foreach.t
 t/06_weaken.t
+t/07_splice.t
+t/08_mkdir.t
 t/97_meta.t
 t/98_pod.t
 t/99_pmv.t

Modified: branches/upstream/libperl-minimumversion-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libperl-minimumversion-perl/current/META.yml?rev=47886&op=diff
==============================================================================
--- branches/upstream/libperl-minimumversion-perl/current/META.yml (original)
+++ branches/upstream/libperl-minimumversion-perl/current/META.yml Sat Nov 28 23:05:15 2009
@@ -25,7 +25,7 @@
   File::Find::Rule: 0.30
   File::Find::Rule::Perl: 1.04
   List::Util: 1.18
-  PPI: 1.201
+  PPI: 1.205
   Params::Util: 0.25
   Perl::Critic::Utils: 1.104
   perl: 5.005
@@ -34,4 +34,4 @@
   ChangeLog: http://fisheye2.atlassian.com/changelog/cpan/trunk/Perl-MinimumVersion
   license: http://dev.perl.org/licenses/
   repository: http://svn.ali.as/cpan/trunk/Perl-MinimumVersion
-version: 1.21
+version: 1.22

Modified: branches/upstream/libperl-minimumversion-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libperl-minimumversion-perl/current/Makefile.PL?rev=47886&op=diff
==============================================================================
--- branches/upstream/libperl-minimumversion-perl/current/Makefile.PL (original)
+++ branches/upstream/libperl-minimumversion-perl/current/Makefile.PL Sat Nov 28 23:05:15 2009
@@ -9,7 +9,7 @@
 requires       'Params::Util'           => '0.25';
 requires       'File::Find::Rule'       => '0.30';
 requires       'File::Find::Rule::Perl' => '1.04';
-requires       'PPI'                    => '1.201';
+requires       'PPI'                    => '1.205';
 requires       'Perl::Critic::Utils'    => '1.104';
 test_requires  'File::Spec'             => '0.80';
 test_requires  'Test::More'             => '0.47';

Modified: branches/upstream/libperl-minimumversion-perl/current/lib/Perl/MinimumVersion.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libperl-minimumversion-perl/current/lib/Perl/MinimumVersion.pm?rev=47886&op=diff
==============================================================================
--- branches/upstream/libperl-minimumversion-perl/current/lib/Perl/MinimumVersion.pm (original)
+++ branches/upstream/libperl-minimumversion-perl/current/lib/Perl/MinimumVersion.pm Sat Nov 28 23:05:15 2009
@@ -47,7 +47,7 @@
 
 use vars qw{$VERSION @ISA @EXPORT_OK %CHECKS %MATCHES};
 BEGIN {
-	$VERSION = '1.21';
+	$VERSION = '1.22';
 
 	# Export the PMV convenience constant
 	@ISA       = 'Exporter';
@@ -80,6 +80,7 @@
 		_any_CHECK_blocks     => version->new('5.006'),
 		_three_argument_open  => version->new('5.006'),
 		_weaken               => version->new('5.006'),
+		_mkdir_1_arg          => version->new('5.006'),
 
 		_any_qr_tokens        => version->new('5.005.03'),
 		_perl_5005_pragmas    => version->new('5.005'),
@@ -88,6 +89,7 @@
 		_any_quotelike_regexp => version->new('5.005'),
 		_any_INIT_blocks      => version->new('5.005'),
 		_substr_4_arg         => version->new('5.005'),
+		_splice_negative_length => version->new('5.005'),
 
 		_postfix_foreach      => version->new('5.004.05'),
 	);
@@ -685,7 +687,7 @@
 	shift->Document->find_any( sub {
 		$_[1]->isa('PPI::Statement')  or return '';
 		my @children=$_[1]->children;
-		@children >= 7                or return '';
+		#@children >= 7                or return '';
 		my $main_element=$children[0];
 		$main_element->isa('PPI::Token::Word') or return '';
 		$main_element->content eq 'open'       or return '';
@@ -704,12 +706,66 @@
 		my $main_element=$_[1];
 		$main_element->isa('PPI::Token::Word') or return '';
 		$main_element->content eq 'substr'       or return '';
+		return '' if is_hash_key($main_element);
+		return '' if is_method_call($main_element);
+		return '' if is_subroutine_name($main_element);
+		return '' if is_included_module_name($main_element);
+		return '' if is_package_declaration($main_element);
 		my @arguments = parse_arg_list($main_element);
 		if ( scalar @arguments > 3 ) {
 			return 1;
 		}
 		return '';
 	} );
+}
+
+sub _mkdir_1_arg {
+	shift->Document->find_any( sub {
+		my $main_element=$_[1];
+		$main_element->isa('PPI::Token::Word') or return '';
+		$main_element->content eq 'mkdir'       or return '';
+		return '' if is_hash_key($main_element);
+		return '' if is_method_call($main_element);
+		return '' if is_subroutine_name($main_element);
+		return '' if is_included_module_name($main_element);
+		return '' if is_package_declaration($main_element);
+		my @arguments = parse_arg_list($main_element);
+		if ( scalar @arguments != 2 ) {
+			return 1;
+		}
+		return '';
+	} );
+}
+
+sub _splice_negative_length {
+	shift->Document->find_any( sub {
+		my $main_element=$_[1];
+		$main_element->isa('PPI::Token::Word') or return '';
+		$main_element->content eq 'splice'       or return '';
+		return '' if is_hash_key($main_element);
+		return '' if is_method_call($main_element);
+		return '' if is_subroutine_name($main_element);
+		return '' if is_included_module_name($main_element);
+		return '' if is_package_declaration($main_element);
+
+		my @arguments = parse_arg_list($main_element);
+		if ( scalar @arguments < 3 ) {
+			return '';
+		}
+		my $arg=$arguments[2];
+		if (ref($arg) eq 'ARRAY') {
+		  $arg=$arg->[0];
+		}
+		if ($arg->isa('PPI::Token::Number')) {
+			if ($arg->literal<0) {
+				return 1;
+			} else {
+				return '';
+			}
+		}
+		return '';
+	} );
+
 }
 
 sub _postfix_foreach {

Modified: branches/upstream/libperl-minimumversion-perl/current/t/03_open_3arg.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libperl-minimumversion-perl/current/t/03_open_3arg.t?rev=47886&op=diff
==============================================================================
--- branches/upstream/libperl-minimumversion-perl/current/t/03_open_3arg.t (original)
+++ branches/upstream/libperl-minimumversion-perl/current/t/03_open_3arg.t Sat Nov 28 23:05:15 2009
@@ -17,20 +17,22 @@
     q{open INFO,   "<  datafile"  or die;},
     q{open(INFO,      "datafile") || die("can't open datafile: $!");},
     q{open my $fh, ">$output";},
-
+    q/if(open my $fh, $output) {}/,
 );
 my @examples_3arg=(
     q{open A,'<','test.txt';},
     q{open( INFO, ">", $datafile ) || die "Can't create $datafile: $!";},
+    q{open( INFO, ">", $datafile )},
     q{open my $fh, '>', $output;},
+    q/if(open my $fh, '>', $output) {}/,
     q{open my $fh, '|-', 'test','arg1';},
 );
 plan tests =>(@examples_3arg+ at examples_not3arg);
 foreach my $example (@examples_not3arg) {
         my $p = Perl::MinimumVersion->new(\$example);
-        is($p->_three_argument_open,'');
+        is($p->_three_argument_open,'',$example);
 }
 foreach my $example (@examples_3arg) {
         my $p = Perl::MinimumVersion->new(\$example);
-        is($p->_three_argument_open,1);
+        is($p->_three_argument_open,1,$example);
 }

Modified: branches/upstream/libperl-minimumversion-perl/current/t/04_substr.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libperl-minimumversion-perl/current/t/04_substr.t?rev=47886&op=diff
==============================================================================
--- branches/upstream/libperl-minimumversion-perl/current/t/04_substr.t (original)
+++ branches/upstream/libperl-minimumversion-perl/current/t/04_substr.t Sat Nov 28 23:05:15 2009
@@ -14,11 +14,12 @@
     q{substr 'asdf',1,1 or print 2,2;},
     q{substr('asdf',1,1);},
     q{my $a=substr('asdf',1,1);},
+    q{$a->substr('asdf',1,1,'aa');},
 );
 my @examples_yes=(
     q{substr('asdf',1,1,'tt');},
     q{my $a=substr('asdf',1,1,'aa');},
-    q{if(substr('asdf',1,1,'aa')) {}},
+    q/if(substr('asdf',1,1,'aa')) {}/,
 );
 plan tests =>(@examples_yes+ at examples_not);
 foreach my $example (@examples_not) {

Added: branches/upstream/libperl-minimumversion-perl/current/t/07_splice.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libperl-minimumversion-perl/current/t/07_splice.t?rev=47886&op=file
==============================================================================
--- branches/upstream/libperl-minimumversion-perl/current/t/07_splice.t (added)
+++ branches/upstream/libperl-minimumversion-perl/current/t/07_splice.t Sat Nov 28 23:05:15 2009
@@ -1,0 +1,34 @@
+#!/usr/bin/perl -w
+
+use strict;
+BEGIN {
+	$|  = 1;
+	$^W = 1;
+}
+
+use Test::More;
+
+#use version;
+use Perl::MinimumVersion;
+my @examples_not=(
+    q{splice(@a,1);},
+    q{splice @a,1;},
+    q{splice @a,1,1;},
+    q{splice @a,1,1, at b;},
+    q{splice @a,1 or die -1,1;},
+    q{$test->splice(@a,1,-1, at b);},
+);
+my @examples_yes=(
+    q{splice @a,1,-1;},
+    q{splice(@a,1,-1);},
+    q{$c=splice(@a,1,-1);},
+);
+plan tests =>(@examples_not+ at examples_yes);
+foreach my $example (@examples_not) {
+        my $p = Perl::MinimumVersion->new(\$example);
+        is($p->_splice_negative_length,'',$example) or do {diag "\$\@: $@" if $@};
+}
+foreach my $example (@examples_yes) {
+        my $p = Perl::MinimumVersion->new(\$example);
+        is($p->_splice_negative_length,1,$example) or do {diag "\$\@: $@" if $@};
+}

Added: branches/upstream/libperl-minimumversion-perl/current/t/08_mkdir.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libperl-minimumversion-perl/current/t/08_mkdir.t?rev=47886&op=file
==============================================================================
--- branches/upstream/libperl-minimumversion-perl/current/t/08_mkdir.t (added)
+++ branches/upstream/libperl-minimumversion-perl/current/t/08_mkdir.t Sat Nov 28 23:05:15 2009
@@ -1,0 +1,32 @@
+#!/usr/bin/perl -w
+
+use strict;
+BEGIN {
+	$|  = 1;
+	$^W = 1;
+}
+
+use Test::More;
+
+#use version;
+use Perl::MinimumVersion;
+my @examples_not=(
+    q{mkdir1('test',1);},
+    q{mkdir('test',1);},
+    q{mkdir 'test',1;},
+    q{$test->mkdir('a');},
+);
+my @examples_yes=(
+    q{mkdir('test');},
+    q{mkdir 'test';},
+    q{$c=mkdir('test');},
+);
+plan tests =>(@examples_not+ at examples_yes);
+foreach my $example (@examples_not) {
+        my $p = Perl::MinimumVersion->new(\$example);
+        is($p->_mkdir_1_arg,'',$example) or do {diag "\$\@: $@" if $@};
+}
+foreach my $example (@examples_yes) {
+        my $p = Perl::MinimumVersion->new(\$example);
+        is($p->_mkdir_1_arg,1,$example) or do {diag "\$\@: $@" if $@};
+}




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