summaryrefslogtreecommitdiff
path: root/ext/threads-shared/t/disabled.t
diff options
context:
space:
mode:
Diffstat (limited to 'ext/threads-shared/t/disabled.t')
-rw-r--r--ext/threads-shared/t/disabled.t59
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