Nicholas Clark via RT wrote:
> On Tue, Feb 13, 2007 at 11:44:01AM +0200, Allison Randal wrote:
>
>> Why the reversed order of arguments from Test::Builder.skip?
>>
>
> Well, it's not reversed from Perl 5's Test::Builder
>
> =item B<SKIP: BLOCK>
>
> SKIP: {
> skip $why, $how_many if $condition;
>
> ...normal testing code goes here...
> }
>
>
>
>> It seems that:
>> skip(5, 'lengthy message about reasoning')
>>
>> is more readable than:
>>
>> skip('lengthy message about reasoning', 5)
>>
>
> I agree. I believe that I've made this mistake before in writing tests in
> Perl 5.
>
>
>> Is the assumption that skipping a single test with a message is more
>> common than skipping a number of tests without a message?
>>
>
> This is my guess too. Probably need to as Schwern to find out the original
> (Perl 5) reason.
>
>
multi-sub?
skip string
skip int, string
Sam.
> Nicholas Clark
>
>
>
>From fe91f8e4469a56285254424e7c408dfc7e13241e Mon Sep 17 00:00:00 2001
From: Sam Vilain <[EMAIL PROTECTED]>
Date: Wed, 14 Feb 2007 01:27:23 +1300
Subject: [PATCH] [t/pmc] convert multisub test to PIR
---
t/pmc/multisub.pir.t | 47 +++++++++++++++++++++++++++++++++++++++++++++++
t/pmc/multisub.t | 42 ------------------------------------------
2 files changed, 47 insertions(+), 42 deletions(-)
create mode 100644 t/pmc/multisub.pir.t
delete mode 100644 t/pmc/multisub.t
diff --git a/t/pmc/multisub.pir.t b/t/pmc/multisub.pir.t
new file mode 100644
index 0000000..3c73408
--- /dev/null
+++ b/t/pmc/multisub.pir.t
@@ -0,0 +1,47 @@
+#! parrot
+# Copyright (C) 2001-2007, The Perl Foundation.
+# $Id$
+
+.macro IMPORT ( lib, subname, TEMP )
+ .TEMP = find_global .lib, .subname
+ store_global .subname, .TEMP
+.endm
+
+.sub main
+ load_bytecode 'library/Test/More.pir'
+
+ .local pmc _
+ .IMPORT( 'Test::More', 'plan', _ )
+ .IMPORT( 'Test::More', 'ok', _ )
+ .IMPORT( 'Test::More', 'is', _ )
+
+ plan( 2 )
+
+=head1 NAME
+
+t/pmc/multisub.t - Multi Sub PMCs
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/multisub.t
+
+=head1 DESCRIPTION
+
+Tests the creation and invocation of Perl6 multi subs.
+
+=cut
+
+ new P0, .MultiSub
+ I0 = defined P0
+ ok(I0, "create PMC")
+
+ elements I0, P0
+ is(I0, 0, "multisubs start empty")
+
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 70
+# End:
+# vim: expandtab shiftwidth=4:
diff --git a/t/pmc/multisub.t b/t/pmc/multisub.t
deleted file mode 100644
index 24a9844..0000000
--- a/t/pmc/multisub.t
+++ /dev/null
@@ -1,42 +0,0 @@
-#! perl
-# Copyright (C) 2001-2005, The Perl Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Test::More;
-use Parrot::Test tests => 1;
-
-=head1 NAME
-
-t/pmc/multisub.t - Multi Sub PMCs
-
-=head1 SYNOPSIS
-
- % prove t/pmc/multisub.t
-
-=head1 DESCRIPTION
-
-Tests the creation and invocation of Perl6 multi subs.
-
-=cut
-
-pasm_output_is( <<'CODE', <<'OUTPUT', "create PMC" );
- new P0, .MultiSub
- print "ok 1\n"
- elements I0, P0
- print I0
- print "\n"
- end
-CODE
-ok 1
-0
-OUTPUT
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
--
1.5.0.rc3.g3e023
>From 271801a9d4a3cbe7bd66418dd09be934d4b6f7ef Mon Sep 17 00:00:00 2001
From: Sam Vilain <[EMAIL PROTECTED]>
Date: Wed, 14 Feb 2007 02:54:09 +1300
Subject: [PATCH] [t/pmc] add a multisub test
Guessing from the code, it looks like it is designed to have Sub
objects pushed onto it.
---
t/pmc/multisub.pir.t | 67 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 60 insertions(+), 7 deletions(-)
diff --git a/t/pmc/multisub.pir.t b/t/pmc/multisub.pir.t
index 3c73408..7b42410 100644
--- a/t/pmc/multisub.pir.t
+++ b/t/pmc/multisub.pir.t
@@ -7,15 +7,33 @@
store_global .subname, .TEMP
.endm
-.sub main
+.sub skipone
+ .param string why
+ $S0 = "mmd - S - " . why
+ .return($S0)
+.end
+
+.sub skipn
+ .param int i
+ .param string why
+ $S1 = i
+ $S0 = "mmd - IS - x" . $S1
+ $S0 = $S0 . " - "
+ $S0 = $S0 . why
+ .return($S0)
+.end
+
+.sub main :main
load_bytecode 'library/Test/More.pir'
.local pmc _
.IMPORT( 'Test::More', 'plan', _ )
.IMPORT( 'Test::More', 'ok', _ )
.IMPORT( 'Test::More', 'is', _ )
+ $P0 = find_global 'Test::More', 'skip'
+ store_global '_skip', $P0
- plan( 2 )
+ plan( 5 )
=head1 NAME
@@ -31,12 +49,47 @@ Tests the creation and invocation of Perl6 multi subs.
=cut
- new P0, .MultiSub
- I0 = defined P0
- ok(I0, "create PMC")
+ $P0 = new .MultiSub
+ $I0 = defined $P0
+ ok($I0, "create PMC")
+
+ $I0 = elements $P0
+ is($I0, 0, "multisubs start empty")
+
+ #push $P0, skipone
+ $P1 = find_global "skipone"
+ push $P0, $P1
+
+ #push $P0, skipn
+ $P1 = find_global "skipn"
+ push $P0, $P1
+
+ $I0 = elements $P0
+ is($I0, 2, "multisubs can be pushed onto")
+
+ # need to make an object that is a new .Sub and a .NCI
+ store_global "skip", $P0
+
+ $I0 = 2
+ push_eh skipit
+ goto begin
+
+skipit:
+ _skip("mmd exception")
+ dec $I0
+ if $I0 goto skipit
+ goto done
+
+begin:
+
+ S0 = 'skip'("yo")
+ is(S0, "mmd - S - yo", "dispatch to single arg sub")
+ dec $I0
+
+ S0 = 'skip'(2, "ho")
+ is(S0, "mmd - S - x2 - ho", "dispatch to two arg sub")
- elements I0, P0
- is(I0, 0, "multisubs start empty")
+done:
.end
--
1.5.0.rc3.g3e023