File Coverage

blib/lib/Net/Frame/Layer/ICMPv4/Echo.pm
Criterion Covered Total %
statement 22 23 95.6
branch 2 4 50.0
condition n/a
subroutine 7 8 87.5
pod 5 5 100.0
total 36 40 90.0


line stmt bran cond sub pod time code
1             #
2             # $Id: Echo.pm 56 2015-01-20 18:55:33Z gomor $
3             #
4             package Net::Frame::Layer::ICMPv4::Echo;
5 3     3   6673 use strict; use warnings;
  3     3   6  
  3         115  
  3         15  
  3         6  
  3         106  
6              
7 3     3   633 use Net::Frame::Layer qw(:consts :subs);
  3         84492  
  3         1326  
8             our @ISA = qw(Net::Frame::Layer);
9              
10             our @AS = qw(
11             identifier
12             sequenceNumber
13             );
14             __PACKAGE__->cgBuildIndices;
15             __PACKAGE__->cgBuildAccessorsScalar(\@AS);
16              
17             sub new {
18             shift->SUPER::new(
19 1     1 1 17 identifier => getRandom16bitsInt(),
20             sequenceNumber => getRandom16bitsInt(),
21             @_,
22             );
23             }
24              
25 0     0 1 0 sub getLength { 4 }
26              
27             sub pack {
28 1     1 1 229 my $self = shift;
29              
30 1 50       5 $self->raw($self->SUPER::pack('nn',
31             $self->identifier, $self->sequenceNumber,
32             )) or return;
33              
34 1         54 return $self->raw;
35             }
36              
37             sub unpack {
38 1     1 1 10 my $self = shift;
39              
40 1 50       3 my ($identifier, $sequenceNumber, $payload) =
41             $self->SUPER::unpack('nn a*', $self->raw)
42             or return;
43              
44 1         22 $self->identifier($identifier);
45 1         8 $self->sequenceNumber($sequenceNumber);
46 1         9 $self->payload($payload);
47              
48 1         6 return $self;
49             }
50              
51             sub print {
52 1     1 1 4 my $self = shift;
53              
54 1         5 my $l = $self->layer;
55 1         12 sprintf "$l: identifier:%d sequenceNumber:%d",
56             $self->identifier, $self->sequenceNumber;
57             }
58              
59             1;
60              
61             __END__