diff options
Diffstat (limited to 'ext/threads-shared/t/disabled.t')
-rw-r--r-- | ext/threads-shared/t/disabled.t | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/ext/threads-shared/t/disabled.t b/ext/threads-shared/t/disabled.t new file mode 100644 index 0000000000..161bc7909e --- /dev/null +++ b/ext/threads-shared/t/disabled.t @@ -0,0 +1,59 @@ +use strict; +use warnings; + +BEGIN { + if ($ENV{'PERL_CORE'}){ + chdir 't'; + unshift @INC, '../lib'; + } +} + +use Test; +plan tests => 31; + +use threads::shared; + +### Start of Testing ### + +# Make sure threads are really off +ok( !$INC{"threads.pm"} ); + +# Check each faked function. +foreach my $func (qw(share cond_wait cond_signal cond_broadcast)) { + ok( my $func_ref = __PACKAGE__->can($func) ? 1 : 0 ); + + eval qq{$func()}; + ok( $@, qr/^Not enough arguments / ); + + my %hash = (foo => 42, bar => 23); + eval qq{$func(\%hash)}; + ok( $@, '' ); + ok( $hash{foo}, 42 ); + ok( $hash{bar}, 23 ); +} + +# These all have no return value. +foreach my $func (qw(cond_wait cond_signal cond_broadcast)) { + my @array = qw(1 2 3 4); + ok( eval qq{$func(\@array)}, undef ); + ok( "@array", "1 2 3 4" ); +} + +# share() is supposed to return back it's argument as a ref. +{ + my @array = qw(1 2 3 4); + ok( share(@array), \@array ); + ok( ref &share({}), 'HASH' ); + ok( "@array", "1 2 3 4" ); +} + +# lock() should be a no-op. The return value is currently undefined. +{ + my @array = qw(1 2 3 4); + lock(@array); + ok( "@array", "1 2 3 4" ); +} + +exit(0); + +# EOF |