update test suite
Jesse Luehrs [Thu, 6 Jan 2011 05:10:53 +0000 (23:10 -0600)]
t/07-edge-cases.t
t/lib/CompileTime.pm [new file with mode: 0644]

index cf75847..4f61ca2 100755 (executable)
@@ -3,6 +3,7 @@ use strict;
 use warnings;
 use lib 't/lib';
 use Test::More;
+use Test::Fatal;
 
 use Package::Stash;
 
@@ -52,4 +53,17 @@ is(ref($constant), 'CODE', "expanded a constant into a coderef");
 is(ref($stash->get_symbol('$glob')), '', "nothing yet");
 is(ref($stash->get_or_add_symbol('$glob')), 'SCALAR', "got an empty scalar");
 
+my $Bar = Package::Stash->new('Bar');
+my $foo = 3;
+$foo =~ s/3/4/;
+my $bar = 4.5;
+$bar =~ s/4/5/;
+
+is(exception { $Bar->add_symbol('$foo', \$foo) }, undef,
+   "can add PVIV values");
+is(exception { $Bar->add_symbol('$bar', \$bar) }, undef,
+   "can add PVNV values");
+
+use_ok('CompileTime');
+
 done_testing;
diff --git a/t/lib/CompileTime.pm b/t/lib/CompileTime.pm
new file mode 100644 (file)
index 0000000..925bc18
--- /dev/null
@@ -0,0 +1,15 @@
+package CompileTime;
+use strict;
+use warnings;
+
+use Package::Stash;
+
+our $foo = 23;
+
+BEGIN {
+    my $stash = Package::Stash->new(__PACKAGE__);
+    $stash->add_symbol('$bar', $foo);
+    $stash->add_symbol('$baz', $stash->get_symbol('$foo'));
+}
+
+1;