Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
HasVersion(3)	      User Contributed Perl Documentation	 HasVersion(3)

NAME
       Test::HasVersion	- Check	Perl modules have version numbers

SYNOPSIS
       "Test::HasVersion" lets you check a Perl	module has a version number in
       a "Test::Simple"	fashion.

	 use Test::HasVersion tests => 1;
	 pm_version_ok("M.pm", "Valid version");

       Module authors can include the following	in a t/has_version.t file and
       let "Test::HasVersion" find and check all installable PM	files in a
       distribution.

	 use Test::More;
	 eval "use Test::HasVersion";
	 plan skip_all =>
	      'Test::HasVersion	required for testing for version numbers' if $@;
	 all_pm_version_ok();

DESCRIPTION
       Do you wanna check that every one of your Perl modules in a
       distribution has	a version number? You wanna make sure you don't	forget
       the brand new modules you just added?  Well, that's the module you have
       been looking for.  Use it!

       Do you wanna check someone else's distribution to make sure the author
       have not	committed the sin of leaving Perl modules without a version
       that can	be used	to tell	if you have this or that feature?
       "Test::HasVersion" is also for you, nasty little	fellow.

       There's a script	test_version which is installed	with this
       distribution. You may invoke it from within the root directory of a
       distribution you	just unpacked, and it will check every .pm file	in the
       directory and under lib/	(if any).

	 $ test_version

       You may also provide directories	and files as arguments.

	 $ test_version	*.pm lib/ inc/
	 $ test_version	.

       (Be warned that many Perl modules in a t/ directory do not receive
       versions	because	they are not used outside the distribution.)

       Ok. That's not a	very useful module by now.  But	it will	be. Wait for
       the upcoming releases.

   FUNCTIONS
       PRIVATE _pm_version
	     $v	= _pm_version($pm);

	   Parses a PM file and	return what it thinks is $VERSION in this
	   file. (Actually implemented with "use ExtUtils::MakeMaker;
	   MM->parse_version($file)".)	$pm is the filename (eg.,
	   lib/Data/Dumper.pm).

       pm_version_ok
	     pm_version_ok('Module.pm');
	     pm_version_ok('M.pm', 'Has	valid version');

	   Checks to see if the	given file has a valid version.	Actually a
	   valid version number	is defined and not equal to 'undef' (the
	   string) which is return by "_pm_version" if a version cannot	be
	   determined.

       all_pm_version_ok
	     all_pm_version_ok();
	     all_pm_version_ok(@PM_FILES);

	   Checks every	given file and .pm files found under given directories
	   to see if they provide valid	version	numbers. If no argument	is
	   given, it defaults to check every file *.pm in the current
	   directory and recurses under	the lib/ directory (if it exists).

	   If no test plan was setted, "Test::HasVersion" will set one after
	   computing the number	of files to be tested. Otherwise, the plan is
	   left	untouched.

       PRIVATE _list_pm_files
	     @pm_files = _list_pm_files(@dirs);

	   Returns all PM files	under the given	directories.

       all_pm_files
	     @files = all_pm_files()
	     @files = all_pm_files(@files_and_dirs);

	   Implements finding the Perl modules according to the	semantics of
	   the previous	function "all_pm_version_ok".

USAGE
       Other usage patterns besides the	ones given in the synopsis.

	 use Test::More	tests => $num_tests;
	 use Test::HasVersion;
	 pm_version_ok($file1);
	 pm_version_ok($file2);

       Obviously, you can't plan twice.

	 use Test::More;
	 use Test::HasVersion;
	 plan tests => $num_tests;
	 pm_version_ok($file);

       "plan" comes from "Test::More".

	 use Test::More;
	 use Test::HasVersion;
	 plan 'no_plan';
	 pm_version_ok($file);

       "no_plan" is ok either.

SEE ALSO
	 Test::Version

       Please reports bugs via CPAN RT,
       http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-HasVersion

AUTHOR
       A. R. Ferreira, <ferreira@cpan.org>

COPYRIGHT AND LICENSE
       Copyright (C) 2006, 2016	by Adriano R. Ferreira

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.1			  2016-01-03			 HasVersion(3)

NAME | SYNOPSIS | DESCRIPTION | USAGE | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Test::HasVersion&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help