diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2011-07-29 13:45:52 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2011-08-02 15:09:32 +1000 |
commit | fb4198a11fcbac51feb9137b794d85741b868199 (patch) | |
tree | 8c3818893c1180068915be64927649413ffff250 | |
parent | 0690a9175fff40db71aa7f30f4e1bc7212b0cfa8 (diff) |
Pass tester and testee around instead of relying on $self.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | ILTest/ILTest.pm | 43 | ||||
-rw-r--r-- | ILTest/TestCase.pm | 20 |
2 files changed, 47 insertions, 16 deletions
diff --git a/ILTest/ILTest.pm b/ILTest/ILTest.pm index 01ff3a9..30d4266 100644 --- a/ILTest/ILTest.pm +++ b/ILTest/ILTest.pm @@ -216,11 +216,11 @@ sub tester { sub _stage_pre() { my $self = shift; - my $testee = $self->testee; - my $tester = $self->tester; + my $testee = shift; + my $tester = shift; my $error; - $self->println(5, "STAGE PRE: $self->{testee}"); + $self->println(5, "STAGE PRE: ".$testee->name); $error = $testee->pre(); if ($error) { @@ -228,7 +228,7 @@ sub _stage_pre() { return 0; } - $self->println(5, "STAGE PRE: $self->{tester}"); + $self->println(5, "STAGE PRE: ".$tester->name); $error = $tester->pre(); if ($error) { @@ -240,11 +240,11 @@ sub _stage_pre() { sub _stage_run() { my $self = shift; - my $testee = $self->testee; - my $tester = $self->tester; + my $testee = shift; + my $tester = shift; my $error; - $self->println(5, "STAGE RUN: $self->{testee}"); + $self->println(5, "STAGE RUN: ".$testee->name); $error = $testee->run(); if ($error) { @@ -252,7 +252,7 @@ sub _stage_run() { return 0; } - $self->println(5, "STAGE RUN: $self->{tester}"); + $self->println(5, "STAGE RUN: ".$tester->name); $error = $tester->run(); if ($error) { @@ -264,12 +264,12 @@ sub _stage_run() { sub _stage_post() { my $self = shift; - my $testee = $self->testee; - my $tester = $self->tester; + my $testee = shift; + my $tester = shift; - $self->println(5, "STAGE POST: $self->{testee}"); + $self->println(5, "STAGE POST: ".$testee->name); $testee->post(); - $self->println(5, "STAGE POST: $self->{tester}"); + $self->println(5, "STAGE POST: ".$tester->name); $tester->post(); } @@ -282,14 +282,27 @@ Returns 0 on failure or 1 on success. =cut sub test { my $self = shift; + my $testee = shift; + my $tester = shift; + + $testee = $self->testee if not defined $testee; + $tester = $self->tester if not defined $tester; + + return $self->test_case($testee, $tester); +} + +sub test_case{ + my $self = shift; + my $testee = shift; + my $tester = shift; my $rc; - if (not $self->_stage_pre) { + if (not $self->_stage_pre($testee, $tester)) { return 0; } - $rc = $self->_stage_run; - $self->_stage_post; + $rc = $self->_stage_run($testee, $tester); + $self->_stage_post($testee, $tester); return $rc; } diff --git a/ILTest/TestCase.pm b/ILTest/TestCase.pm index c8eb212..87f2edf 100644 --- a/ILTest/TestCase.pm +++ b/ILTest/TestCase.pm @@ -31,6 +31,7 @@ This module is the main interface for test cases. =cut package ILTest::TestCase; +use Scalar::Util qw(blessed); use warnings; use strict; @@ -38,8 +39,14 @@ use strict; sub new { my $class = shift; my $self = {@_}; - $self->{parameters} = {}; + bless ($self, $class); + $self->{parameters} = {}; + + my $name = blessed($self); + + $name =~ s/(.*)=HASH.*/$1/; + $self->{name} = $name; return $self; } @@ -68,6 +75,17 @@ sub parameters { return $self->{parameters}; } +=head2 B<$test-E<gt>name> + +Returns the name (usually the class) of this test. + +=cut + +sub name { + my $self = shift; + return $self->{name}; +} + =head2 B<$test-E<gt>pre> Pre-testing setup. Override this function set up the environment before |