From: Sapan Bhatia Date: Fri, 23 Jan 2009 15:46:35 +0000 (+0000) Subject: Moved these tests into the right context (node --> slice) X-Git-Tag: tests-4.3-0~30 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=052bd3545a4bcef3016c14e8756039d56fd53d22;p=tests.git Moved these tests into the right context (node --> slice) --- diff --git a/qaapi/qa/tests/slice/ping.pl b/qaapi/qa/tests/slice/ping.pl new file mode 100755 index 0000000..bbc4b58 --- /dev/null +++ b/qaapi/qa/tests/slice/ping.pl @@ -0,0 +1,40 @@ +#!/usr/bin/perl + +# Module: VNET+ +# Description: Generate ping packets and count the responses +# Author: sapanb@cs.princeton.edu + +use strict; +use threads; + +#please change to something local +my $guineapig='planetlab-1.cs.princeton.edu'; +my $numiter=1000; + +sub run { + system("ping -c $numiter -i 0.1 $guineapig"); + } + + +sub open_tcpdump { + my $filter="icmp and src $guineapig"; + my $cmdline="/usr/sbin/tcpdump -c $numiter $filter"; + + system($cmdline); +} + +sub alhandler { + print "[FAILED] tcpdump apparently did not intercept all SYN/ACK packets\n"; + exit(-1); +} + +print "Starting tcpdump...\n"; +my $tcpdthr=threads->create(\&open_tcpdump); +sleep 10; +print "Generating connections...\n"; +run; +$SIG{ALRM}=\&alhandler; +alarm(60); + +$tcpdthr->join; +print "[SUCCESS] Test completed OK.\n"; diff --git a/qaapi/qa/tests/slice/synacks.pl b/qaapi/qa/tests/slice/synacks.pl new file mode 100755 index 0000000..6f7ef6a --- /dev/null +++ b/qaapi/qa/tests/slice/synacks.pl @@ -0,0 +1,86 @@ +#!/usr/bin/perl + +# Module: VNET+ +# Description: +# Generate a ton of connections and check if we can see syn/ack packets via tcpdump. +# Author: sapanb@cs.princeton.edu + +use strict; +use IO::Socket; +use threads; +use threads::shared; + +my $guineapig='www.cs.princeton.edu'; +my $targetfile='/~sapanb/small'; +my $magic='3j4kl;1234kj341234jl1k234ljk123h4'; +my $numiter=1000; +my $numsynacks:shared=0; +my $numthreads=4; +my $numpackets=$numthreads*$numiter; + +sub fetch { + my $sock = new IO::Socket::INET ( + PeerAddr => $guineapig, + PeerPort => 80, + Proto => 'tcp' + ); + return 0 unless $sock; + print $sock "GET $targetfile HTTP/1.0\r\n"; + print $sock "Host: www.cs.princeton.edu\r\n"; + print $sock "\r\n"; + + my $success=0; + while (<$sock>) { + if (/$magic/g) { + $success=1; + last; + } + } + close ($sock); + if ($success==1) { + $numsynacks=$numsynacks+1; + } + return $success; +} + +sub mfetch { + foreach (1..$numiter) { + fetch; + } +} + +sub launch { + my @tarray; + foreach (1..$numthreads) { + my $thr = threads->create(\&mfetch); + push @tarray,$thr; + } + + for (@tarray) { + $_->join; + } +} + +sub open_tcpdump { + my $filter="'tcp[tcpflags]&tcp-syn !=0 and tcp[tcpflags]&tcp-ack !=0 and src $guineapig'"; + my $cmdline="/usr/sbin/tcpdump -c $numpackets $filter"; + my $p; + + system($cmdline); +} + +sub alhandler { + print "[FAILED] tcpdump apparently did not intercept all SYN/ACK packets\n"; + exit(-1); +} + +print "Starting tcpdump...\n"; +my $tcpdthr=threads->create(\&open_tcpdump); +sleep 10; +print "Generating connections...\n"; +launch; +$SIG{ALRM}=\&alhandler; +alarm(60); +$tcpdthr->join; +$numsynacks++; +print "[SUCCESS] Test completed OK. $numsynacks SYN/ACK packets intercepted.\n";