Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fix and expand import.t
the old version used wrong scoping in eval_dies_ok, and importing by wrong names. Adds some tag exporting tests
  • Loading branch information
moritz committed May 8, 2012
1 parent df8cc85 commit e81414b
Showing 1 changed file with 28 additions and 12 deletions.
40 changes: 28 additions & 12 deletions S11-modules/import.t
@@ -1,6 +1,6 @@
use v6;
use Test;
plan 8;
plan 11;

# L<S11/Importing without loading>

Expand All @@ -9,23 +9,23 @@ plan 8;
{
module A {
sub Afoo() is export { 'sub A::Afoo' };
sub Abar() is export { 'sub A::Abar' };
sub Abar() { 'sub A::Abar' };
}
import A <Afoo>;
import A;

is Afoo(), 'sub A::Afoo', 'import imports things explicitly from named module';
eval_dies_ok q{ Abar() }, "doesn't import non-requested exports";
is Afoo(), 'sub A::Afoo', 'import imports things marked as "is export"';
dies_ok {eval(q{ Abar() })}, "doesn't import non-exported routines";
}

#?rakudo skip 'import plus inline module'
{
import (module B {
sub Bfoo() is export { 'sub B::Bfoo' };
sub Bbar() is export { 'sub B::Bbar' };
}) <Bfoo>;
sub Bbar() { 'sub B::Bbar' };
});

is Bfoo(), 'sub B::Bfoo',
'import imports things explicitly from inlined module';
eval_dies_ok q{ Bbar() }, "doesn't import non-requested exports";
is Bfoo(), 'sub B::Bfoo', 'impporting from inline module';
dies_ok {eval(q{ Bbar() })}, "not importing not-exported routines";
}

{
Expand All @@ -37,20 +37,36 @@ plan 8;

is Cfoo(), 'sub C::Cfoo',
'import imports things implicitly from named module';
#?rakudo skip 'unknown bug'
is Cbar(), 'sub C::Cbar',
'import imports more things implicitly from named module';
}

#?rakudo skip 'import plus inline module'
{
import module D {
import (module D {
sub Dfoo() is export { 'sub D::Dfoo' };
sub Dbar() is export { 'sub D::Dbar' };
}
});

is Dfoo(), 'sub D::Dfoo',
'import imports things implicitly from inlined module';
is Dbar(), 'sub D::Dbar',
'import imports more things implicitly from inlined module';
}

{
module E {
sub e1 is export(:A) { 'E::e1' }
sub e2 is export(:B) { 'E::e2' }
}
import E :B;
dies_ok { eval 'e1' }, 'importing by tag is sufficiently selective';
is e2(), 'E::e2', 'importing by tag';
{
import E :ALL;
is e1() ~ e2(), 'E::e1E::e2', 'import :ALL';
}
}

# vim: ft=perl6

0 comments on commit e81414b

Please sign in to comment.