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

jelmer at samba.org jelmer at samba.org
Sun Jan 14 04:32:11 GMT 2007


Author: jelmer
Date: 2007-01-14 04:32:11 +0000 (Sun, 14 Jan 2007)
New Revision: 20756

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

Log:
Update to use generated recipes.

Modified:
   branches/SAMBA_4_0/source/script/tests/selftest.pl


Changeset:
Modified: branches/SAMBA_4_0/source/script/tests/selftest.pl
===================================================================
--- branches/SAMBA_4_0/source/script/tests/selftest.pl	2007-01-14 03:38:56 UTC (rev 20755)
+++ branches/SAMBA_4_0/source/script/tests/selftest.pl	2007-01-14 04:32:11 UTC (rev 20756)
@@ -104,7 +104,7 @@
  --target=samba4|samba3|win Samba version to target
  --socket-wrapper           enable socket wrapper
  --quick                    run quick overall test
-
+ --one                      abort when the first test fails
 ";
 	exit(0);
 }
@@ -113,12 +113,14 @@
 my $opt_target = "samba4";
 my $opt_quick = 0;
 my $opt_socket_wrapper = 0;
+my $opt_one = 0;
 
 my $result = GetOptions (
 	    'help|h|?' => \$opt_help,
 		'target' => \$opt_target,
 		'socket-wrapper' => \$opt_socket_wrapper,
-		'quick' => \$opt_quick
+		'quick' => \$opt_quick,
+		'one' => \$opt_one
 	    );
 
 if (not $result) {
@@ -263,16 +265,50 @@
 
 # start off with 0 failures
 $ENV{failed} = 0;
-$ENV{totalfailed} = 0;
+my $totalfailed = 0;
 
+my @todo = ();
+
 if ($opt_target eq "win") {
 	system("$testsdir/test_win.sh");
-} elsif ($opt_quick) {
-	system("$testsdir/tests_quick.sh");
-} else {
-	system("$testsdir/tests_all.sh");
+} else { 
+	if ($opt_quick) {
+		open(IN, "$testsdir/tests_quick.sh|");
+	} else {
+		open(IN, "$testsdir/tests_all.sh|");
+	}
+	while (<IN>) {
+		if ($_ eq "-- TEST --\n") {
+			my $name = <IN>;
+			$name =~ s/\n//g;
+			my $cmdline = <IN>;
+			$cmdline =~ s/\n//g;
+			push (@todo, [$name, $cmdline]);
+		} else {
+			print;
+		}
+	}
+	close(IN);
 }
 
+my $total = $#todo + 1;
+my $i = 0;
+$| = 1;
+
+foreach (@todo) {
+	$i = $i + 1;
+	my $err = "";
+	if ($totalfailed > 0) { $err = ", $totalfailed errors"; }
+	printf "[$i/$total in " . (time() - $start)."s$err] $$_[0]\n";
+	my $ret = system("$$_[1] >/dev/null 2>/dev/null");
+	if ($ret != 0) {
+		$totalfailed++;
+		exit(1) if ($opt_one);
+	}
+}
+
+print "\n";
+
 close(DATA);
 
 my $failed = $? >> 8;
@@ -291,6 +327,7 @@
 
 my $end=time();
 print "DURATION: " . ($end-$start). " seconds\n";
+print "$totalfailed failures\n";
 
 # if there were any valgrind failures, show them
 foreach (<$prefix/valgrind.log*>) {



More information about the samba-cvs mailing list