From f87f7c95f6bffde0fbae6b69e395857a2110392b Mon Sep 17 00:00:00 2001 From: Kenichi Ishigaki Date: Tue, 16 Sep 2014 01:12:24 +0900 Subject: 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) --- MANIFEST | 1 + lib/Parse/PMFile.pm | 1 + t/70_vpp.t | 28 ++++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 t/70_vpp.t 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; -- cgit v1.2.3