blob: 37d46804118b056a3ad70f510f8d44e2e6c65103 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#!perl
use strict;
use warnings;
# As perlfunc.pod says:
# Note that the file will not be included twice under the same specified name.
# So ensure that this, textually, is the same name as all the loaded tests use.
# Otherwise if we require 'test.pl' and they require './test.pl', it is loaded
# twice.
require './test.pl';
skip_all_without_config('useithreads');
skip_all_if_miniperl("no dynamic loading on miniperl, no threads");
require threads;
# Which file called us?
my $caller = (caller)[1];
die "Can't figure out which test to run from filename '$caller'"
unless $caller =~ m!((?:op|re)/[-_a-z0-9A-Z]+)_thr\.t\z!;
my $file = "$1.t";
$::running_as_thread = "running tests in a new thread";
require $file;
note('running tests in a new thread');
my $curr = threads->create(sub {
run_tests();
return defined &curr_test ? curr_test() : ()
})->join();
curr_test($curr) if defined $curr;
1;
|