summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2011-07-29 13:45:52 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-08-02 15:09:32 +1000
commitfb4198a11fcbac51feb9137b794d85741b868199 (patch)
tree8c3818893c1180068915be64927649413ffff250
parent0690a9175fff40db71aa7f30f4e1bc7212b0cfa8 (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.pm43
-rw-r--r--ILTest/TestCase.pm20
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