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

FreeBSD Manual Pages

  
 
  

home | help
Test2::Require::Fork(3User Contributed Perl DocumentatiTest2::Require::Fork(3)

NAME
       Test2::Require::Fork - Skip a test file unless the system supports
       forking

DESCRIPTION
       It is fairly common to write tests that need to fork. Not all systems
       support forking.	This library does the hard work	of checking if forking
       is supported on the current system. If forking is not supported then
       this will skip all tests	and exit true.

SYNOPSIS
	   use Test2::Require::Fork;

	   ... Code that forks ...

EXPLANATION
       Checking	if the current system supports forking is not simple. Here is
       an example of how to do it:

	   use Config;

	   sub CAN_FORK	{
	       return 1	if $Config{d_fork};

	       # Some platforms	use ithreads to	mimic forking
	       return 0	unless $^O eq 'MSWin32'	|| $^O eq 'NetWare';
	       return 0	unless $Config{useithreads};
	       return 0	unless $Config{ccflags}	=~ /-DPERL_IMPLICIT_SYS/;

	       # Threads are not reliable before 5.008001
	       return 0	unless $] >= 5.008001;

	       # Devel::Cover currently	breaks with threads
	       return 0	if $INC{'Devel/Cover.pm'};
	       return 1;
	   }

       Duplicating this	non-trivial code in all	tests that need	to fork	is
       error-prone. It is easy to forget bits, or get it wrong.	On top of
       these checks, you also need to tell the harness that no tests should
       run and why.

SEE ALSO
       Test2::Require::CanReallyfork
	   Similar to this module, but will skip on any	perl that only has
	   fork	emulation.

       Test2::Require::CanThread
	   Skip	the test file if the system does not support threads.

SOURCE
       The source code repository for Test2-Suite can be found at
       https://github.com/Test-More/Test2-Suite/.

MAINTAINERS
       Chad Granum <exodist@cpan.org>

AUTHORS
       Chad Granum <exodist@cpan.org>

COPYRIGHT
       Copyright 2018 Chad Granum <exodist@cpan.org>.

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

       See http://dev.perl.org/licenses/

perl v5.32.0			  2020-08-17	       Test2::Require::Fork(3)

NAME | DESCRIPTION | SYNOPSIS | EXPLANATION | SEE ALSO | SOURCE | MAINTAINERS | AUTHORS | COPYRIGHT

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

home | help