Author: bernhard
Date: Wed Jan 31 13:18:29 2007
New Revision: 16854
Added:
trunk/languages/PIR/t/assign.t
trunk/languages/PIR/t/whitespace.t
Modified:
trunk/languages/PIR/README
trunk/languages/PIR/t/sub.t
Log:
Extend the languages/PIR test suite.
Fix spelling of Coke's name
Courtesy of Klaas Jan Stol.
Modified: trunk/languages/PIR/README
==============================================================================
--- trunk/languages/PIR/README (original)
+++ trunk/languages/PIR/README Wed Jan 31 13:18:29 2007
@@ -80,7 +80,7 @@
a lot, so some things taken might be gone already).
Thanks to Jerry "particle" Gay for fixing numerous platform issues.
-Thanks to Will "Coke" Colleda for helping setting up the test harness stuff.
+Thanks to Will "Coke" Coleda for helping setting up the test harness stuff.
AUTHOR
------
Added: trunk/languages/PIR/t/assign.t
==============================================================================
--- (empty file)
+++ trunk/languages/PIR/t/assign.t Wed Jan 31 13:18:29 2007
@@ -0,0 +1,45 @@
+#!perl
+
+use strict;
+use warnings;
+use lib qw(t . lib ../lib ../../lib ../../../lib);
+use Parrot::Test tests => 3;
+use Test::More;
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'simple assignments' );
+.sub main
+ a = 1
+ b = 1.1
+ c = "hello"
+ d = e
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'get keyed assignments' );
+.sub main
+ e = x[1]
+ f = x[1.1]
+ g = x["hello"]
+ h = x[e]
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'set keyed assignments' );
+.sub main
+ x[1] = 1
+ x[1.1] = 2.222
+ x["hello"] = "hello"
+ x[e] = f
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
Modified: trunk/languages/PIR/t/sub.t
==============================================================================
--- trunk/languages/PIR/t/sub.t (original)
+++ trunk/languages/PIR/t/sub.t Wed Jan 31 13:18:29 2007
@@ -3,14 +3,175 @@
use strict;
use warnings;
use lib qw(t . lib ../lib ../../lib ../../../lib);
-use Parrot::Test tests => 1;
+use Parrot::Test tests => 20;
use Test::More;
-language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'simple sub' );
-.sub f
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'basic sub' );
+.sub main
.end
CODE
"parse" => PMC 'PIRGrammar' { ... }
Parse successful!
OUT
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'main flag' );
+.sub main :main
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'load flag' );
+.sub main :load
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'init flag' );
+.sub main :init
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'immediate flag' );
+.sub main :immediate
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'lex flag' );
+.sub main :lex
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'anon flag' );
+.sub main :anon
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'outer flag' );
+.sub main :outer('outer_sub')
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'multi flag 1' );
+.sub main :multi(int)
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'multi flag 2' );
+.sub main :multi(int, num)
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'multi flag 3' );
+.sub main :multi(_, int, num, string, pmc)
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'multi flag 4' );
+.sub main :multi(int, _, num, string, _)
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'multi flag 5' );
+.sub main :multi(_)
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'multi flag 6' );
+.sub main :multi(int, int, int, int)
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'multi flag 7' );
+.sub main :multi(_, _, _, _, _, _)
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'vtable flag' );
+.sub main :vtable('__set_int')
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'combine flags without
commas' );
+.sub main :main :load :immediate :init
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'combine flags with commas'
);
+.sub main :main, :load, :immediate, :init
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'parameters' );
+.sub main
+ .param pmc pargs
+ .param int iarg
+ .param string sarg
+ .param num narg
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'parameter flags' );
+.sub main
+ .param pmc args1 :slurpy
+ .param pmc args2 :named
+ .param pmc args3 :optional
+ .param int arg3 :opt_flag
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
Added: trunk/languages/PIR/t/whitespace.t
==============================================================================
--- (empty file)
+++ trunk/languages/PIR/t/whitespace.t Wed Jan 31 13:18:29 2007
@@ -0,0 +1,524 @@
+#!perl
+
+use strict;
+use warnings;
+use lib qw(t . lib ../lib ../../lib ../../../lib);
+use Parrot::Test tests => 10;
+use Test::More;
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'comments before code' );
+#
+# pre-code comment
+#
+.sub main
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'comments after code' );
+.sub main
+.end
+#
+# comments after code
+#
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'comments in code' );
+.sub main
+#
+# in-code comment
+#
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'comments after code' );
+.sub main
+
+ x = 1 # this is an assignment!
+ # this is comment # this is even more comment
+
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'pre-code whitespace' );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.sub main
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'in-code whitespace' );
+.sub main
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'after-code whitespace' );
+.sub main
+.end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'pre-code pod comments' );
+=pod
+
+hi there
+
+documentation rocks!
+
+
+
+
+
+
+
+
+=cut
+
+
+
+.sub main
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'in-code pod comments' );
+.sub main
+
+=pod
+
+hello!!
+
+Parrot rocks too!
+
+=cut
+.end
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+
+
+language_output_is( 'PIR_PGE', <<'CODE', <<'OUT', 'after-code pod comments' );
+.sub main
+.end
+
+=pod
+
+Don't forget to hit enter after typing last OUT marker in the test file!
+
+=cut
+
+CODE
+"parse" => PMC 'PIRGrammar' { ... }
+Parse successful!
+OUT
+