summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenichi Ishigaki <ishigaki@cpan.org>2014-09-16 01:12:24 +0900
committerKenichi Ishigaki <ishigaki@cpan.org>2014-09-16 01:12:24 +0900
commitf87f7c95f6bffde0fbae6b69e395857a2110392b (patch)
tree6726e4d37425641d30677b99b200474d61a0c2d2
parent831127f01602ccddd2992126a01e54213b47dc0e (diff)
Share also charstar:: stuff (which is hidden in version::vpp and used to scan version)
- which should fix #3 for perl 5.8.9 and before (i.e. perls forced to use version::vpp)
-rw-r--r--MANIFEST1
-rw-r--r--lib/Parse/PMFile.pm1
-rw-r--r--t/70_vpp.t28
3 files changed, 30 insertions, 0 deletions
diff --git a/MANIFEST b/MANIFEST
index 4e4b290..e933b7e 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -14,6 +14,7 @@ t/34_math_version.t
t/40_package_versions.t
t/50_no_index.t
t/60_permissions.t
+t/70_vpp.t
t/80_version_overload.t
t/99_pod.t
t/99_podcoverage.t
diff --git a/lib/Parse/PMFile.pm b/lib/Parse/PMFile.pm
index 906bf8f..23000a4 100644
--- a/lib/Parse/PMFile.pm
+++ b/lib/Parse/PMFile.pm
@@ -208,6 +208,7 @@ sub _parse_version {
$comp->share("*version::new");
$comp->share("*version::numify");
$comp->share_from('main', ['*version::',
+ '*charstar::',
'*Exporter::',
'*DynaLoader::']);
$comp->share_from('version', ['&qv']);
diff --git a/t/70_vpp.t b/t/70_vpp.t
new file mode 100644
index 0000000..83ab59d
--- /dev/null
+++ b/t/70_vpp.t
@@ -0,0 +1,28 @@
+use strict;
+use warnings;
+use Test::More;
+use Parse::PMFile;
+use File::Temp;
+
+my $tmpdir = File::Temp->newdir(CLEANUP => 1);
+plan skip_all => "tmpdir is not ready" unless -e $tmpdir && -w $tmpdir;
+
+my $pmfile = "$tmpdir/Test.pm";
+{
+ open my $fh, '>', $pmfile or plan skip_all => "Failed to create a pmfile";
+ print $fh "package " . "Parse::PMFile::Test;\n";
+ print $fh 'use version; our $VERSION = version->declare("v0.0.1");',"\n";
+ close $fh;
+}
+
+for (0..1) {
+ no warnings 'once';
+ local $Parse::PMFile::FORK = $_;
+ my $parser = Parse::PMFile->new;
+ my $info = $parser->parse($pmfile);
+
+ ok $info->{'Parse::PMFile::Test'}{version} eq '0.000001';
+ note explain $info;
+}
+
+done_testing;