mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-10-30 18:27:53 +00:00
80 lines
1.7 KiB
Perl
80 lines
1.7 KiB
Perl
# test utilities for LANforge scripts
|
|
package LANforge::Test;
|
|
use strict;
|
|
use warnings;
|
|
use diagnostics;
|
|
use Carp;
|
|
|
|
# Ubuntu: libtest2-suite-perl
|
|
use Test2::V0 qw(ok fail done_testing);
|
|
use Test2::Tools::Basic qw(plan);
|
|
|
|
|
|
$SIG{ __DIE__ } = sub { Carp::confess( @_ ) };
|
|
$SIG{ __WARN__ } = sub { Carp::confess( @_ ) };
|
|
|
|
# Un-buffer output
|
|
$| = 1;
|
|
use Data::Dumper;
|
|
|
|
if (defined $ENV{'DEBUG'}) {
|
|
use Data::Dumper;
|
|
use diagnostics;
|
|
use Carp;
|
|
$SIG{ __DIE__ } = sub { Carp::confess( @_ ) };
|
|
}
|
|
|
|
require Exporter;
|
|
our @EXPORT_OK=qw(new test);
|
|
|
|
#our $FAIL = 'fail';
|
|
#our $OK = 'pass';
|
|
#our $PASS = 'pass';
|
|
our @test_errors = ();
|
|
|
|
sub new {
|
|
my $class = shift;
|
|
my $self = {};
|
|
my %parm = @_;
|
|
$self->{'Name'} = $parm{'Name'};
|
|
$self->{'Desc'} = $parm{'Desc'};
|
|
$self->{'Errors'} = [];
|
|
$self->{'ExpectedNumber'} = 1;
|
|
$self->{'Test'} = undef;
|
|
if (defined $parm{'Test'}) {
|
|
#print "new: Creating Test $self->{'Name'}\n";
|
|
$self->{'Test'} = $parm{'Test'};
|
|
}
|
|
if (defined $parm{'ExpectedNumber'}) {
|
|
$self->{'ExpectedNumber'} = $parm{'ExpectedNumber'};
|
|
}
|
|
bless $self, $class;
|
|
return $self;
|
|
}
|
|
|
|
sub run {
|
|
plan(1);
|
|
my $self = shift;
|
|
print "Run $self->{Name}\n";
|
|
my $result = shift;
|
|
|
|
ok($result, $self->{'Name'}) || fail($self->{'Name'});
|
|
done_testing();
|
|
}
|
|
|
|
sub test {
|
|
my $self = shift;
|
|
if (! (defined $self->{'Test'})) {
|
|
print "LANforge::test lacks self->Test, please rewrite your script.\n";
|
|
return $::FAIL;
|
|
}
|
|
return $self->{'Test'}($self, @_);
|
|
}
|
|
sub test_err {
|
|
my $self = shift;
|
|
for my $e (@_) {
|
|
my $ref = "".(caller(1))[3].":".(caller(1))[2]."";
|
|
push (@::test_errors, "$ref: $e");
|
|
}
|
|
}
|
|
1; |