#!/usr/bin/perl -w use lib "."; use Fault::Logger; use Fault::Msg; use Fault::Delegate::Stdout; { package Simple1; use vars qw{@ISA}; @ISA = qw( UNIVERSAL ); sub new {my ($class) = @_; my $self = bless {}, $class; return $self;} sub log {my ($self,$msg) = @_; my $str = $msg->msg; print "\t\t SIMPLE1: $str\n"; return 1;} 1; } { package Simple2; use vars qw{@ISA}; @ISA = qw( UNIVERSAL ); sub new {my ($class) = @_; my $self = bless {}, $class; return $self;} sub log {my ($self,$msg,$target,$myarg) = @_; (defined $myarg) || ($myarg=""); my $str = $msg->msg; print "\t\t SIMPLE2: $str $myarg\n"; return 1;} sub trans01 {my ($self,$msg,$target,@rest) = @_;} sub trans10 {my ($self,$msg,$target,@rest) = @_;} sub initfaults {my ($self) = @_; my @msglist = (); return @msglist;} 1; } sub fn {return shift;} my @mine = ("(Extra argghhs)","myarg2"); my @rest = (undef,undef,undef,@mine); # Take your pick my $delegate1 = Simple1->new; my $delegate2 = Simple2->new; my $delegate3 = Fault::Delegate::Stdout->new; my $baz = Fault::Logger->new ($delegate1,$delegate2); $baz->add_delegates ($delegate3); @delegates = Fault::Logger->delegates; @delegates = $baz->delegates; # Basic logging my $waslogged = Fault::Logger->log ("Log this message or we shoot the dog", @rest); $waslogged = $baz->log ("Bang!",@rest); # One shot logging my $first = Fault::Logger->log_once ("Useful once.",@rest); $first = $baz->log_once ("Useful once.",@rest); # Raise and lower fault my $okay = Fault::Logger->fault_check ((!fn(0)),"TestGroup","Fn okay", "NET",undef,undef,@mine); $okay = $baz->fault_check ((!fn(1)),"TestGroup","Fn okay", "NET",undef,undef,@mine); # Report only when assertion is true $okay = Fault::Logger->assertion_check ((!fn(0)),"[ASSERT]","Not OK", "DATA",undef,undef, @mine); $okay = $baz->assertion_check ((!fn(1)),"[ASSERT]","Fn OK", "DATA",undef,undef, @mine); $okay = Fault::Logger->arg_check_isalnum ("A 1","val","BUG", undef,undef,@rest); $okay = $baz->arg_check_isalnum ("A1","val","BUG", undef,undef,@rest); $okay = $baz->arg_check_isalnum ("A;1","val"); my $val = "801234597566"; $okay = Fault::Logger->arg_check_isdigit ("A1","val","BUG", undef,undef,@rest); $okay = $baz->arg_check_isdigit ("81","val","BUG", undef,undef,@rest); $okay = $baz->arg_check_isdigit ("81.1","val"); $okay = Fault::Logger->arg_check_noref (\$val,"val","BUG", undef,undef,@rest); $okay = $baz->arg_check_noref ($val,"val","BUG", undef,undef,@rest); $okay = $baz->arg_check_noref ($delegate1,"val"); $val = Fault::Msg->new; $okay = Fault::Logger->arg_check_isa ($delegate1,'Fault::Msg',"val", "BUG",undef,undef,@rest); $okay = $baz->arg_check_isa ("aaa",'Fault::Logger',"val", "BUG",undef,undef,@rest); $okay = $baz->arg_check_isa ($val,'Fault::Msg',"val"); # Access to latest logged message. my $msg = Fault::Logger->message; Fault::Logger->clr_message; # Raise and lower bug fault undef $foo; $okay = Fault::Logger->bug_check ((!defined $foo),"Missing arg", undef,@mine); my $foo = 0; $okay = $baz->bug_check ((!defined $foo),"Missing arg", undef,@mine); # Access to latest logged message. $msg = $baz->message; $baz->clr_message; # Only the first one will report Fault::Logger->crash ("AieeeEEE",@rest); $baz->crash ("Arrghhhhh",@rest);