Permalink
Browse files

[t] moved check.t to spec/, simplified a bit

git-svn-id: http://svn.pugscode.org/pugs@22193 c213334d-75ef-0310-aa23-eaa082d1ae64
  • Loading branch information...
1 parent 04abb4f commit 7d82b1885b6edb0b0c5f78e74328d3bc0c0e8524 moritz committed Sep 9, 2008
Showing with 35 additions and 0 deletions.
  1. +35 −0 S04-closure-traits/check.t
View
@@ -0,0 +1,35 @@
+use v6;
+
+use Test;
+
+plan 5;
+
+# L<S04/"Closure traits"/CHECK "at compile time" ALAP>
+# CHECK {...} block in "void" context
+{
+ my $str = '';
+ BEGIN { $str ~= "begin1 "; }
+ CHECK { $str ~= "check "; }
+ BEGIN { $str ~= "begin2 "; }
+
+ is $str, "begin1 begin2 check ", "check blocks run after begin blocks";
+}
+
+{
+ my $str = '';
+ CHECK { $str ~= "check1 "; }
+ BEGIN { $str ~= "begin "; }
+ CHECK { $str ~= "check2 "; }
+
+ is $str, "begin check2 check1 ", "check blocks run in reverse order";
+}
+
+# CHECK {...} blocks as rvalues
+{
+ my $str = '';
+ my $handle = { my $retval = CHECK { $str ~= 'C' } };
+
+ is $handle(), 'C', 'our CHECK {...} block returned the correct var (1)';
+ is $handle(), 'C', 'our CHECK {...} block returned the correct var (2)';
+ is $str, 'C', 'our rvalue CHECK {...} block was executed exactly once';
+}

0 comments on commit 7d82b18

Please sign in to comment.