This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[ANNOUNCE] Math::BigInt v1.69
[perl5.git] / ext / threads / shared / t / disabled.t
CommitLineData
0a9af0ff
MS
1#!./perl -Tw
2
3# Tests of threads::shared's behavior when threads are disabled.
4
5BEGIN {
6 chdir 't';
7 @INC = '../lib';
8}
9
10# Can't use Test::More, it turns threads on.
11use Test;
12plan tests => 31;
13
14use threads::shared;
15
16# Make sure threads are really off.
17ok( !$INC{"threads.pm"} );
18
19# Check each faked function.
20foreach my $func (qw(share cond_wait cond_signal cond_broadcast)) {
21 ok( my $func_ref = __PACKAGE__->can($func) ? 1 : 0 );
22
23 eval qq{$func()};
24 ok( $@, qr/^Not enough arguments / );
25
26 my %hash = (foo => 42, bar => 23);
27 eval qq{$func(\%hash)};
28 ok( $@, '' );
29 ok( $hash{foo}, 42 );
30 ok( $hash{bar}, 23 );
31}
32
33# These all have no return value.
34foreach my $func (qw(cond_wait cond_signal cond_broadcast)) {
35 my @array = qw(1 2 3 4);
36 ok( eval qq{$func(\@array)}, undef );
37 ok( "@array", "1 2 3 4" );
38}
39
40# share() is supposed to return back it's argument as a ref.
41{
42 my @array = qw(1 2 3 4);
43 ok( share(@array), \@array );
44 ok( ref &share({}), 'HASH' );
45 ok( "@array", "1 2 3 4" );
46}
47
48# lock() should be a no-op. The return value is currently undefined.
49{
50 my @array = qw(1 2 3 4);
51 lock(@array);
52 ok( "@array", "1 2 3 4" );
53}