sync tests
Jesse Luehrs [Tue, 6 Sep 2011 01:03:04 +0000 (20:03 -0500)]
t/basic.t
t/paamayim_nekdotayim.t [new file with mode: 0644]

index a106e9e..f20e055 100644 (file)
--- a/t/basic.t
+++ b/t/basic.t
@@ -417,4 +417,24 @@ like(exception {
     );
 }
 
+for my $package ('Foo:Bar', 'Foo/Bar', 'Foo Bar', 'Foo:::Bar', '') {
+    like(
+        exception { Package::Stash->new($package) },
+        qr/^$package is not a module name/,
+        "$package is not a module name"
+    );
+}
+
+like(
+    exception { Package::Stash->new([]) },
+    qr/^Package::Stash->new must be passed the name of the package to access/,
+    "module name must be a string"
+);
+
+like(
+    exception { Package::Stash->new(undef) },
+    qr/^Package::Stash->new must be passed the name of the package to access/,
+    "module name must be a string"
+);
+
 done_testing;
diff --git a/t/paamayim_nekdotayim.t b/t/paamayim_nekdotayim.t
new file mode 100644 (file)
index 0000000..d17bdaf
--- /dev/null
@@ -0,0 +1,28 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use lib 't/lib';
+use Test::More;
+use Test::Fatal;
+
+use Package::Stash;
+
+my $stash = Package::Stash->new('Foo');
+# this segfaulted on the xs version
+like(
+    exception { $stash->add_symbol('@bar::baz') },
+    qr/^Variable names may not contain ::/,
+    "can't add symbol with ::"
+);
+like(
+    exception { $stash->get_symbol('@bar::baz') },
+    qr/^Variable names may not contain ::/,
+    "can't add symbol with ::"
+);
+like(
+    exception { $stash->get_or_add_symbol('@bar::baz') },
+    qr/^Variable names may not contain ::/,
+    "can't add symbol with ::"
+);
+
+done_testing;