Store weak references.
[p5sagit/p5-mst-13.2.git] / ext / Storable / t / lock.t
1 #!./perl
2 #
3 #  Copyright (c) 1995-2000, Raphael Manfredi
4 #  
5 #  You may redistribute only under the same terms as Perl 5, as specified
6 #  in the README file that comes with the distribution.
7 #
8
9 sub BEGIN {
10     if ($ENV{PERL_CORE}){
11         chdir('t') if -d 't';
12         @INC = ('.', '../lib', '../ext/Storable/t');
13     } else {
14         unshift @INC, 't';
15     }
16     require Config; import Config;
17     if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bStorable\b/) {
18         print "1..0 # Skip: Storable was not built\n";
19         exit 0;
20     }
21
22     require 'st-dump.pl';
23 }
24
25 sub ok;
26
27 use Storable qw(lock_store lock_retrieve);
28
29 unless (&Storable::CAN_FLOCK) {
30     print "1..0 # Skip: fcntl/flock emulation broken on this platform\n";
31         exit 0;
32 }
33
34 print "1..5\n";
35
36 @a = ('first', undef, 3, -4, -3.14159, 456, 4.5);
37
38 #
39 # We're just ensuring things work, we're not validating locking.
40 #
41
42 ok 1, defined lock_store(\@a, 'store');
43 ok 2, $dumped = &dump(\@a);
44
45 $root = lock_retrieve('store');
46 ok 3, ref $root eq 'ARRAY';
47 ok 4, @a == @$root;
48 ok 5, &dump($root) eq $dumped; 
49
50 unlink 't/store';
51