summaryrefslogtreecommitdiffstats
path: root/t/basic.t
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-08-01 23:27:34 -0500
committerJesse Luehrs <doy@tozt.net>2011-08-01 23:27:34 -0500
commit7fdc514fb2d9768b3d38d078cf24d9d03403539b (patch)
treee479a548f1c1c73e2a8082b36386aff5460469c3 /t/basic.t
parent1a2acf758e0e3bcd0694753469d237ebc356e8c1 (diff)
downloadeval-closure-7fdc514fb2d9768b3d38d078cf24d9d03403539b.tar.gz
eval-closure-7fdc514fb2d9768b3d38d078cf24d9d03403539b.zip
remove test numbers
Diffstat (limited to 't/basic.t')
-rw-r--r--t/basic.t48
1 files changed, 48 insertions, 0 deletions
diff --git a/t/basic.t b/t/basic.t
new file mode 100644
index 0000000..3a318ac
--- /dev/null
+++ b/t/basic.t
@@ -0,0 +1,48 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+use Test::Fatal;
+
+use Eval::Closure;
+
+{
+ my $code = eval_closure(
+ source => 'sub { die "called\n" }',
+ );
+ ok($code, "got something");
+
+ like(exception { $code->() }, qr/^called$/, "got the right thing");
+}
+
+{
+ my $foo = [];
+
+ my $code = eval_closure(
+ source => 'sub { push @$bar, @_ }',
+ environment => {
+ '$bar' => \$foo,
+ },
+ );
+ ok($code, "got something");
+
+ $code->(1);
+
+ is_deeply($foo, [1], "got the right thing");
+}
+
+{
+ my $foo = [1, 2, 3];
+
+ my $code = eval_closure(
+ # not sure if strict leaking into evals is intended, i think i remember
+ # it being changed in newer perls
+ source => 'do { no strict; sub { $foo } }',
+ );
+
+ ok($code, "got something");
+
+ ok(!$code->(), "environment is clean");
+}
+
+done_testing;