Author: jelmer Date: 2007-09-02 11:16:16 +0000 (Sun, 02 Sep 2007) New Revision: 24887
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24887 Log: Support reading testlists from other locations (e.g. Samba3) Modified: branches/SAMBA_4_0/ branches/SAMBA_4_0/source/selftest/selftest.pl Changeset: Property changes on: branches/SAMBA_4_0 ___________________________________________________________________ Name: bzr:revision-info ...skipped... Name: bzr:revision-id:v3-trunk0 ...skipped... Modified: branches/SAMBA_4_0/source/selftest/selftest.pl =================================================================== --- branches/SAMBA_4_0/source/selftest/selftest.pl 2007-09-02 03:57:56 UTC (rev 24886) +++ branches/SAMBA_4_0/source/selftest/selftest.pl 2007-09-02 11:16:16 UTC (rev 24887) @@ -138,6 +138,7 @@ my $opt_bindir = undef; my $opt_no_lazy_setup = undef; my $opt_format = "plain"; +my @opt_testlists = (); my $srcdir = "."; my $builddir = "."; @@ -270,6 +271,7 @@ Generic options: --help this help page --target=samba4|samba3|win Samba version to target + --testlist=FILE file to read available tests from Paths: --prefix=DIR prefix to run tests in [st] @@ -321,6 +323,7 @@ 'resetup-environment' => \$opt_resetup_env, 'bindir:s' => \$opt_bindir, 'format=s' => \$opt_format, + 'testlist=s' => [EMAIL PROTECTED] ); exit(1) if (not $result); @@ -533,28 +536,42 @@ my %required_envs = (); +sub read_testlist($) +{ + my ($filename) = @_; + + my @ret = (); + open(IN, $filename) or die("Unable to open $filename: $!"); + + while (<IN>) { + if ($_ eq "-- TEST --\n") { + my $name = <IN>; + $name =~ s/\n//g; + my $env = <IN>; + $env =~ s/\n//g; + my $cmdline = <IN>; + $cmdline =~ s/\n//g; + if (not defined($tests) or $name =~ /$tests/) { + $required_envs{$env} = 1; + push (@ret, [$name, $env, $cmdline]); + } + } else { + print; + } + } + close(IN) or die("Error creating recipe"); + return @ret; +} + if ($opt_quick) { - open(IN, "$testsdir/tests_quick.sh|"); + @todo = read_testlist("$testsdir/tests_quick.sh|"); } else { - open(IN, "$testsdir/tests_all.sh|"); + @todo = read_testlist("$testsdir/tests_all.sh|"); } -while (<IN>) { - if ($_ eq "-- TEST --\n") { - my $name = <IN>; - $name =~ s/\n//g; - my $env = <IN>; - $env =~ s/\n//g; - my $cmdline = <IN>; - $cmdline =~ s/\n//g; - if (not defined($tests) or $name =~ /$tests/) { - $required_envs{$env} = 1; - push (@todo, [$name, $env, $cmdline]); - } - } else { - print; - } + +foreach (@opt_testlists) { + push(@todo, read_testlist($_)); } -close(IN) or die("Error creating recipe"); my $suitestotal = $#todo + 1; my $i = 0;