svn commit: samba r22360 - in branches/SAMBA_4_0/source/script/tests: .

metze at samba.org metze at samba.org
Thu Apr 19 08:04:36 GMT 2007


Author: metze
Date: 2007-04-19 08:04:35 +0000 (Thu, 19 Apr 2007)
New Revision: 22360

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22360

Log:
print out the name of the PCAP file and move setup and cleanup
of pcap files into functions

metze
Modified:
   branches/SAMBA_4_0/source/script/tests/SocketWrapper.pm
   branches/SAMBA_4_0/source/script/tests/selftest.pl


Changeset:
Modified: branches/SAMBA_4_0/source/script/tests/SocketWrapper.pm
===================================================================
--- branches/SAMBA_4_0/source/script/tests/SocketWrapper.pm	2007-04-19 07:39:45 UTC (rev 22359)
+++ branches/SAMBA_4_0/source/script/tests/SocketWrapper.pm	2007-04-19 08:04:35 UTC (rev 22360)
@@ -12,17 +12,30 @@
 use strict;
 use FindBin qw($RealBin);
 
-sub setup_dir($)
+sub setup_dir($$)
 {
-	my ($dir) = @_;
+	my ($dir, $pcap) = @_;
+	my $pcap_dir = undef;
+
 	if (defined($dir)) {
 		if ( -d $dir ) {
 			unlink <$dir/*>;
 		} else {
 			mkdir($dir);
 		}
+
+		if ($pcap) {
+			$pcap_dir = $dir."/pcap";
+
+			if ( -d $pcap_dir ) {
+				unlink <$pcap_dir/*>;
+			} else {
+				mkdir($pcap_dir);
+			}
+		}
 	}
 
+	$ENV{SOCKET_WRAPPER_PCAP_DIR} = $pcap_dir;
 	$ENV{SOCKET_WRAPPER_DIR} = $dir;
 	return $dir;
 }

Modified: branches/SAMBA_4_0/source/script/tests/selftest.pl
===================================================================
--- branches/SAMBA_4_0/source/script/tests/selftest.pl	2007-04-19 07:39:45 UTC (rev 22359)
+++ branches/SAMBA_4_0/source/script/tests/selftest.pl	2007-04-19 08:04:35 UTC (rev 22360)
@@ -219,6 +219,8 @@
 		$out .= $test_output->{$state->{NAME}};
 	}
 
+	$out .= "PCAP FILE: $state->{PCAP_FILE}\n" if defined($state->{PCAP_FILE});
+
 	$out .= getlog_env($state->{ENVNAME});
 
 	$out .= "==========================================\n";
@@ -270,16 +272,23 @@
 sub plain_end_msg($$$)
 {
 	my ($state, $expected_ret, $ret) = @_;
+	my $out = "";
 
 	if ($ret != $expected_ret) {
 		plain_output_msg($state, "ERROR: $ret\n");
 	}
 
 	if ($ret != $expected_ret and ($opt_immediate or $opt_one) and not $opt_verbose) {
-		print $test_output->{$state->{NAME}}."\n";
+		$out .= $test_output->{$state->{NAME}};
 	}
 
-	print getlog_env($state->{ENVNAME});
+	if (not $opt_socket_wrapper_keep_pcap and defined($state->{PCAP_FILE})) {
+		$out .= "PCAP FILE: $state->{PCAP_FILE}\n";
+	}
+
+	$out .= getlog_env($state->{ENVNAME});
+
+	print $out;
 }
 
 my $plain_msg_ops = {
@@ -288,9 +297,39 @@
 	end_msg		=> \&plain_end_msg
 };
 
+sub setup_pcap($)
+{
+	my ($state) = @_;
+
+	return unless ($opt_socket_wrapper_pcap);
+	return unless defined($ENV{SOCKET_WRAPPER_PCAP_DIR});
+
+	my $fname = sprintf("t%03u_%s", $state->{INDEX}, $state->{NAME});
+	$fname =~ s%[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\-]%_%g;
+
+	$state->{PCAP_FILE} = "$ENV{SOCKET_WRAPPER_PCAP_DIR}/$fname.pcap";
+
+	SocketWrapper::setup_pcap($state->{PCAP_FILE});
+}
+
+sub cleanup_pcap($$$)
+{
+	my ($state, $expected_ret, $ret) = @_;
+
+	return unless ($opt_socket_wrapper_pcap);
+	return if ($opt_socket_wrapper_keep_pcap);
+	return unless ($expected_ret == $ret);
+	return unless defined($state->{PCAP_FILE});
+
+	unlink($state->{PCAP_FILE});
+	$state->{PCAP_FILE} = undef;
+}
+
 sub run_test($$$$$$)
 {
 	my ($envname, $name, $cmd, $i, $totalsuites, $msg_ops) = @_;
+	my $expected_ret = 1;
+	my $open_tests = {};
 	my $msg_state = {
 		ENVNAME	=> $envname,
 		NAME	=> $name,
@@ -299,10 +338,12 @@
 		TOTAL	=> $totalsuites,
 		START	=> time()
 	};
+
+	setup_pcap($msg_state);
+
 	$msg_ops->{start_msg}($msg_state);
+
 	open(RESULT, "$cmd 2>&1|");
-	my $expected_ret = 1;
-	my $open_tests = {};
 	while (<RESULT>) {
 		$msg_ops->{output_msg}($msg_state, $_);
 		if (/^test: (.+)\n/) {
@@ -338,7 +379,11 @@
 		$statistics->{TESTS_ERROR}++;
 	}
 	my $ret = close(RESULT);
+
+	cleanup_pcap($msg_state,  $expected_ret, $ret);
+
 	$msg_ops->{end_msg}($msg_state, $expected_ret, $ret);
+
 	if ($ret != $expected_ret) {
 		push(@$suitesfailed, $name);
 		$statistics->{SUITES_FAIL}++;
@@ -473,17 +518,15 @@
 $ENV{PKG_CONFIG_PATH} = "$old_pwd/bin/pkgconfig:$ENV{PKG_CONFIG_PATH}";
 $ENV{PATH} = "$old_pwd/bin:$ENV{PATH}";
 
-my $pcap_dir = "$prefix/pcap";
 
 if ($opt_socket_wrapper_pcap) {
-	mkdir($pcap_dir);
 	# Socket wrapper pcap implies socket wrapper
 	$opt_socket_wrapper = 1;
 }
 
 my $socket_wrapper_dir;
 if ($opt_socket_wrapper) {
-	$socket_wrapper_dir = SocketWrapper::setup_dir("$prefix/w");
+	$socket_wrapper_dir = SocketWrapper::setup_dir("$prefix/w", $opt_socket_wrapper_pcap);
 	print "SOCKET_WRAPPER_DIR=$socket_wrapper_dir\n";
 } else {
 	warn("Not using socket wrapper, but also not running as root. Will not be able to listen on proper ports") unless $< == 0;
@@ -710,19 +753,8 @@
 
 		setup_env($envname);
 
-		my $shname = $name;
-		$shname =~ s%[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\-]%_%g;
-		my $pcap_file = "$pcap_dir/$shname.cap";
+		run_test($envname, $name, $cmd, $i, $suitestotal, $msg_ops);
 
-		SocketWrapper::setup_pcap($pcap_file) if ($opt_socket_wrapper_pcap);
-		my $result = run_test($envname, $name, $cmd, $i, $suitestotal, 
-							  $msg_ops);
-
-		if ($opt_socket_wrapper_pcap and $result and 
-			not $opt_socket_wrapper_keep_pcap) {
-			unlink($pcap_file);
-		}
-
 		if (defined($opt_analyse_cmd)) {
 			system("$opt_analyse_cmd \"$name\"");
 		}



More information about the samba-cvs mailing list