8d92ef5fb80498b8b19381198e0af05a6c9bb2e3
[tests.git] / qaapi / qa / tests / slice / ping.pl
1 #!/usr/bin/perl
2
3 # Module: VNET+
4 # Description: Generate ping packets and count the responses
5 # Author: sapanb@cs.princeton.edu
6
7 use strict;
8 use threads;
9
10 #please change to something local
11 my $guineapig='planetlab-1.cs.princeton.edu';
12 my $numiter=1000;
13
14 sub run {
15         system("sudo ping -c $numiter -i 0.1 $guineapig");
16         }
17
18
19 sub open_tcpdump {
20         my $filter="icmp and src $guineapig";
21         my $cmdline="/usr/sbin/tcpdump -c $numiter $filter";
22         
23         system($cmdline);
24 }
25
26 sub alhandler {
27         print "[FAILED] tcpdump apparently did not intercept all SYN/ACK packets\n";
28         exit(-1);
29 }
30
31 print "Starting tcpdump...\n";
32 my $tcpdthr=threads->create(\&open_tcpdump);
33 sleep 10;
34 print "Generating connections...\n";
35 run;
36 $SIG{ALRM}=\&alhandler;
37 alarm(60);
38
39 $tcpdthr->join;
40 print "[SUCCESS] Test completed OK.\n";