1*f3efcd01Safresh1use Test2::Tools::Tiny; 2*f3efcd01Safresh1use strict; 3*f3efcd01Safresh1use warnings; 4*f3efcd01Safresh1 5*f3efcd01Safresh1use Test2::IPC; 6*f3efcd01Safresh1use Test2::Util qw/CAN_THREAD CAN_REALLY_FORK/; 7*f3efcd01Safresh1 8*f3efcd01Safresh1skip_all 'No IPC' unless CAN_REALLY_FORK || CAN_THREAD; 9*f3efcd01Safresh1 10*f3efcd01Safresh1if (CAN_REALLY_FORK) { 11*f3efcd01Safresh1 my $pid = fork; 12*f3efcd01Safresh1 die "Failed to fork: $!" unless defined $pid; 13*f3efcd01Safresh1 if ($pid) { 14*f3efcd01Safresh1 waitpid($pid, 0) 15*f3efcd01Safresh1 } 16*f3efcd01Safresh1 else { 17*f3efcd01Safresh1 ok(1, "Pass fork"); 18*f3efcd01Safresh1 exit 0; 19*f3efcd01Safresh1 } 20*f3efcd01Safresh1} 21*f3efcd01Safresh1 22*f3efcd01Safresh1if (CAN_THREAD) { 23*f3efcd01Safresh1 require threads; 24*f3efcd01Safresh1 my $thread = threads->create( 25*f3efcd01Safresh1 sub { 26*f3efcd01Safresh1 ok(1, "Pass thread"); 27*f3efcd01Safresh1 } 28*f3efcd01Safresh1 ); 29*f3efcd01Safresh1 30*f3efcd01Safresh1 $thread->join; 31*f3efcd01Safresh1} 32*f3efcd01Safresh1 33*f3efcd01Safresh1done_testing; 34