This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Storable: Fix t/huge.t PERL_TEST_MEMORY diagnostic messages
[perl5.git] / dist / Storable / t / tied_store.t
CommitLineData
4189a2e6
Z
1#!./perl
2
3sub BEGIN {
4 unshift @INC, 't';
5 unshift @INC, 't/compat' if $] < 5.006002;
6 require Config; import Config;
7 if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bStorable\b/) {
8 print "1..0 # Skip: Storable was not built\n";
9 exit 0;
10 }
11}
12
13use Storable ();
14use Test::More tests => 3;
15
16our $f;
17
18package TIED_HASH;
19
20sub TIEHASH { bless({}, $_[0]) }
21
22sub STORE {
23 $f = Storable::freeze(\$_[2]);
24 1;
25}
26
27package TIED_ARRAY;
28
29sub TIEARRAY { bless({}, $_[0]) }
30
31sub STORE {
32 $f = Storable::freeze(\$_[2]);
33 1;
34}
35
36package TIED_SCALAR;
37
38sub TIESCALAR { bless({}, $_[0]) }
39
40sub STORE {
41 $f = Storable::freeze(\$_[1]);
42 1;
43}
44
45package main;
46
47my($s, @a, %h);
48tie $s, "TIED_SCALAR";
49tie @a, "TIED_ARRAY";
50tie %h, "TIED_HASH";
51
52$f = undef;
53$s = 111;
54is $f, Storable::freeze(\111);
55
56$f = undef;
57$a[3] = 222;
58is $f, Storable::freeze(\222);
59
60$f = undef;
61$h{foo} = 333;
62is $f, Storable::freeze(\333);
63
641;