sorting works and rests all work

This commit is contained in:
Zane C. B-H 2019-02-25 02:22:35 -06:00
parent 0450809453
commit beb7b1ac96
2 changed files with 45 additions and 15 deletions

View File

@ -51,7 +51,7 @@ The supported sort methods are as below.
q_s Queue, Send
none No sorting is done.
The ones below are currently present, but sometimes produce eratic results.
These dual sort can take noticably longer than the ones above.
host_ff Host, Foreign First
host_lf Host, Local First

View File

@ -11,10 +11,10 @@ my @found=(
{
'foreign_host'=>'1.1.1.1',
'local_host'=>'2.2.2.1',
'foreign_port'=>'22222',
'local_port'=>'22',
'sendq'=>'0',
'recvq'=>'0',
'foreign_port'=>'22221',
'local_port'=>'11',
'sendq'=>'5',
'recvq'=>'4',
'state' => 'ESTABLISHED',
'proto' => 'tcp4',
},
@ -23,8 +23,8 @@ my @found=(
'local_host'=>'2.2.2.5',
'foreign_port'=>'22',
'local_port'=>'2222',
'sendq'=>'0',
'recvq'=>'0',
'sendq'=>'33',
'recvq'=>'3',
'state' => 'TIME_WAIT',
'proto' => 'tcp4',
},
@ -32,9 +32,9 @@ my @found=(
'foreign_host'=>'1.1.1.1',
'local_host'=>'2.2.2.3',
'foreign_port'=>'22',
'local_port'=>'2222',
'sendq'=>'0',
'recvq'=>'0',
'local_port'=>'444',
'sendq'=>'7',
'recvq'=>'2',
'state' => 'ESTABLISHED',
'proto' => 'tcp4',
},
@ -44,9 +44,9 @@ my @found=(
'foreign_port'=>'22',
'local_port'=>'2222',
'sendq'=>'0',
'recvq'=>'0',
'state' => 't',
'proto' => 'tcp4',
'recvq'=>'1',
'state' => '',
'proto' => 'udp4',
},
);
@ -64,7 +64,37 @@ my ($sort_type, $invert)=$sorter->get_sort;
ok( $sort_type eq 'host_l', 'get_sort, type') or diag('"'.$sort_type.'" returned instead of "host_l"');
@sorted=$sorter->sort( \@found );
ok( $sorted[0]->{local_host} eq '2.2.2.1', 'host_l, 1') or diag('"'.$sorted[0]->{local_host}.'" returned for $sorted[0]->{local_host} instead of "2.2.2.5"');
ok( $sorted[0]->{local_host} eq '2.2.2.1', 'host_l, 1') or diag('"'.$sorted[0]->{local_host}.'" returned for $sorted[0]->{local_host} instead of "2.2.2.1"');
ok( $sorted[1]->{local_host} eq '2.2.2.2', 'host_l, 2') or diag('"'.$sorted[1]->{local_host}.'" returned for $sorted[1]->{local_host} instead of "2.2.2.2"');
done_testing(9);
$sorter->set_sort('state');
@sorted=$sorter->sort( \@found );
ok( $sorted[0]->{state} eq '', 'state, 1') or diag('"'.$sorted[0]->{state}.'" returned for $sorted[0]->{state} instead of ""');
ok( $sorted[3]->{state} eq 'TIME_WAIT', 'state, 2') or diag('"'.$sorted[3]->{state}.'" returned for $sorted[3]->{state} instead of "TIME_WAIT"');
$sorter->set_sort('protocol');
@sorted=$sorter->sort( \@found );
ok( $sorted[0]->{proto} eq 'tcp4', 'protocol, 1') or diag('"'.$sorted[0]->{proto}.'" returned for $sorted[0]->{proto} instead of "tcp4"');
ok( $sorted[3]->{proto} eq 'udp4', 'protocol, 2') or diag('"'.$sorted[3]->{proto}.'" returned for $sorted[3]->{proto} instead of "udp4"');
$sorter->set_sort('port_l');
@sorted=$sorter->sort( \@found );
ok( $sorted[0]->{local_port} eq '11', 'port_l, 1') or diag('"'.$sorted[0]->{local_port}.'" returned for $sorted[0]->{local_port} instead of "11"');
ok( $sorted[3]->{local_port} eq '2222', 'port_l, 2') or diag('"'.$sorted[3]->{local_port}.'" returned for $sorted[3]->{local_port} instead of "2222"');
$sorter->set_sort('port_f');
@sorted=$sorter->sort( \@found );
ok( $sorted[0]->{foreign_port} eq '22', 'port_f, 1') or diag('"'.$sorted[0]->{foreign_port}.'" returned for $sorted[0]->{foreign_Port} instead of "22"');
ok( $sorted[3]->{foreign_port} eq '22221', 'port_f, 2') or diag('"'.$sorted[3]->{foreign_port}.'" returned for $sorted[3]->{foreign_port} instead of "22221"');
$sorter->set_sort('q_r');
@sorted=$sorter->sort( \@found );
ok( $sorted[0]->{recvq} eq '1', 'q_r, 1') or diag('"'.$sorted[0]->{recvq}.'" returned for $sorted[0]->{recvq} instead of "1"');
ok( $sorted[3]->{recvq} eq '4', 'q_r, 2') or diag('"'.$sorted[3]->{recvq}.'" returned for $sorted[3]->{recvq} instead of "4"');
$sorter->set_sort('q_s');
@sorted=$sorter->sort( \@found );
ok( $sorted[0]->{sendq} eq '0', 'q_s, 1') or diag('"'.$sorted[0]->{sendq}.'" returned for $sorted[0]->{recvq} instead of "5"');
ok( $sorted[3]->{sendq} eq '33', 'q_s, 2') or diag('"'.$sorted[3]->{sendq}.'" returned for $sorted[3]->{sendq} instead of "33"');
done_testing(18);