/usr/share/doc/perl-Readonly/t/general
NameSizeModeActions
array.t20500644editdlrm
clone.t14200644editdlrm
deepa.t12200644editdlrm
deeph.t12660644editdlrm
deeps.t17660644editdlrm
docs.t23350644editdlrm
export.t1910644editdlrm
hash.t16910644editdlrm
readonly.t22470644editdlrm
reassign.t31080644editdlrm
scalar.t13180644editdlrm
tie.t6160644editdlrm
Edit: /usr/share/doc/perl-Readonly/t/general/deeps.t (1766B)
#!/usr/bin/perl -I../../lib # Test Scalar vs Scalar1 functionality use strict; use Test::More tests => 21; # Find the module (1 test) BEGIN {use_ok('Readonly'); } sub expected { my $line = shift; $@ =~ s/\.$//; # difference between croak and die return "Modification of a read-only value attempted at " . __FILE__ . " line $line\n"; } use vars qw/$s1 $s2 $s3 $s4/; my $m1 = 17; my $m2 = \$m1; # Create (4 tests) eval {Readonly::Scalar1 $s1 => ["this", "is", "a", "test", {x => 5}]}; is $@ => '', 'Create a shallow reference scalar'; eval {Readonly::Scalar $s2 => ["this", "is", "a", "test", {x => 5}]}; is $@ => '', 'Create a deep reference scalar'; eval {Readonly::Scalar1 $s3 => $m2}; is $@ => '', 'Create a shallow scalar ref'; eval {Readonly::Scalar $s4 => $m2}; is $@ => '', 'Create a deep scalar ref'; # Modify (16 tests) eval {$s1 = 7}; is $@ => expected(__LINE__-1), 'Modify s1'; eval {$s2 = 7}; is $@ => expected(__LINE__-1), 'Modify s2'; eval {$s3 = 7}; is $@ => expected(__LINE__-1), 'Modify s3'; eval {$s4 = 7}; is $@ => expected(__LINE__-1), 'Modify s4'; eval {$s1->[2] = "the"}; is $@ => '', 'Deep-modify s1'; is $s1->[2] => 'the', 's1 modification successful'; eval {$s2->[2] = "the"}; is $@ => expected(__LINE__-1), 'Deep-modify s2'; is $s2->[2] => 'a', 's2 modification supposed to fail'; eval {$s1->[4]{z} = 42}; is $@ => '', 'Deep-deep modify s1'; is $s1->[4]{z} => 42, 's1 mod successful'; eval {$s2->[4]{z} = 42}; is $@ => expected(__LINE__-1), 'Deep-deep modify s2'; ok !exists($s2->[4]{z}), 's2 mod supposed to fail'; eval {$$s4 = 21}; is $@ => expected(__LINE__-1), 'Deep-modify s4 should fail'; is $m1 => 17, 's4 mod should fail'; eval {$$s3 = "bah"}; is $@ => '', 'deep s3 mod'; is $m1 => 'bah', 'deep s3 mod';