File: log2summary

package info (click to toggle)
emcast 0.3.2-6
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 1,532 kB
  • ctags: 898
  • sloc: sh: 9,351; ansic: 7,234; perl: 731; makefile: 168
file content (80 lines) | stat: -rwxr-xr-x 1,387 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/perl -w

my %pid2send = ();
my %pid2recv = ();


while (<>)
{
    if (/(\d+) SEND: MESSAGE \d+ (\d+)/)
    {
	my $pid = $1;
	my $seq = $2;

#	print "$pid SEND $seq\n";

	$pid2send{$pid} = [] if !defined $pid2send{$pid};
	push (@{$pid2send{$pid}}, $seq);
    }
    elsif (/(\d+) RECV: MESSAGE (\d+) (\d+)/)
    {
	my $recv_pid = $1;
	my $send_pid = $2;
	my $seq = $3;

	$pid2recv{$recv_pid} = () if !defined $pid2recv{$recv_pid};
	$pid2recv{$recv_pid}{$send_pid} = () 
	    if !defined $pid2recv{$recv_pid}{$send_pid};
	push (@{$pid2recv{$recv_pid}{$send_pid}}, $seq);

#	print "$recv_pid RECV $send_pid $seq\n";
    }
    else
    {
	print;
    }
}


print "\n";
print "SENT PACKETS:\n";
my $sender;
foreach $sender (sort keys %pid2send)
{
    my $pktsr = $pid2send{$sender};
    my $pkt;
    print "  $sender: ";
    foreach $pkt (sort { $a <=> $b} (@$pktsr))
    {
	printf "%2d ", $pkt;
    }
    print "\n";
}

print "\n";
print "RECV PACKETS:\n";
my $recver;
foreach $recver (sort keys %pid2recv)
{
    print "$recver\n";

    foreach $sender (sort keys %{$pid2recv{$recver}})
    {
	my $pktsr = $pid2recv{$recver}{$sender};
	my $pkt;
	my $last_pkt = 0;
	print "  $sender: ";
	foreach $pkt (sort { $a <=> $b} (@$pktsr))
	{
	    while ($last_pkt != ($pkt-1))
	    {
		print "   ";
		$last_pkt++;
	    }

	    printf "%2d ", $pkt;
	    $last_pkt = $pkt;
	}
	print "\n";
    }
}