16fb12b70Safresh1#! /usr/local/perl -w 26fb12b70Safresh1# Before `make install' is performed this script should be runnable with 36fb12b70Safresh1# `make test'. After `make install' it should work as `perl test.pl' 46fb12b70Safresh1 56fb12b70Safresh1######################### 66fb12b70Safresh1 76fb12b70Safresh1use Test::More qw/no_plan/; 8b8851fccSafresh1use File::Spec; 96fb12b70Safresh1 106fb12b70Safresh1BEGIN { 119f11ffb7Safresh1 my $coretests = File::Spec->rel2abs( 129f11ffb7Safresh1 File::Spec->catpath( 13b8851fccSafresh1 (File::Spec->splitpath($0))[0,1], 'coretests.pm' 149f11ffb7Safresh1 ) 15b8851fccSafresh1 ); 166fb12b70Safresh1 require $coretests; 17*3d61058aSafresh1 use_ok('version', 0.9930); 186fb12b70Safresh1} 196fb12b70Safresh1 206fb12b70Safresh1BaseTests("version","new","qv"); 216fb12b70Safresh1BaseTests("version","new","declare"); 226fb12b70Safresh1BaseTests("version","parse", "qv"); 236fb12b70Safresh1BaseTests("version","parse", "declare"); 246fb12b70Safresh1 256fb12b70Safresh1# dummy up a redundant call to satify David Wheeler 266fb12b70Safresh1local $SIG{__WARN__} = sub { die $_[0] }; 276fb12b70Safresh1eval 'use version;'; 286fb12b70Safresh1unlike ($@, qr/^Subroutine main::declare redefined/, 296fb12b70Safresh1 "Only export declare once per package (to prevent redefined warnings)."); 306fb12b70Safresh1 316fb12b70Safresh1# https://rt.cpan.org/Ticket/Display.html?id=47980 326fb12b70Safresh1my $v = eval { 336fb12b70Safresh1 require IO::Handle; 346fb12b70Safresh1 $@ = qq(Can't locate some/completely/fictitious/module.pm); 356fb12b70Safresh1 return IO::Handle->VERSION; 366fb12b70Safresh1}; 376fb12b70Safresh1ok defined($v), 'Fix for RT #47980'; 386fb12b70Safresh1 396fb12b70Safresh1{ # https://rt.cpan.org/Ticket/Display.html?id=81085 406fb12b70Safresh1 eval { version::new() }; 416fb12b70Safresh1 like $@, qr'Usage: version::new\(class, version\)', 426fb12b70Safresh1 'No bus err when called as function'; 436fb12b70Safresh1 eval { $x = 1; print version::new }; 446fb12b70Safresh1 like $@, qr'Usage: version::new\(class, version\)', 456fb12b70Safresh1 'No implicit object creation when called as function'; 466fb12b70Safresh1 eval { $x = "version"; print version::new }; 476fb12b70Safresh1 like $@, qr'Usage: version::new\(class, version\)', 486fb12b70Safresh1 'No implicit object creation when called as function'; 496fb12b70Safresh1} 50eac174f2Safresh1 51eac174f2Safresh1{ 52eac174f2Safresh1 eval { version::vcmp($^V) }; 53eac174f2Safresh1 like $@, qr{Usage: version::\S+\(lobj, robj, \.\.\.\)}, 54eac174f2Safresh1 'vcmp method throws error on single argument'; 55eac174f2Safresh1} 56