diff options
author | Andrew Bartlett <abartlet@samba.org> | 2017-02-28 10:45:24 +1300 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-06-30 02:12:22 +0200 |
commit | 602772159dfd1213385f42ecbf31136f57693b63 (patch) | |
tree | ceceefec93547b485d00eeed75a6b702e3dc1753 /selftest/selftest.pl | |
parent | daeb74aed8741ec80ccc2121da3a24b51ccfa021 (diff) | |
download | samba-602772159dfd1213385f42ecbf31136f57693b63.tar.gz |
selftest: Allow selftest.pl to run just some environments
This makes it easier to declare that some autobuild environments
only run some selftest environments.
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Diffstat (limited to 'selftest/selftest.pl')
-rwxr-xr-x | selftest/selftest.pl | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/selftest/selftest.pl b/selftest/selftest.pl index 6869132f7af..38de96d6450 100755 --- a/selftest/selftest.pl +++ b/selftest/selftest.pl @@ -47,6 +47,8 @@ my $opt_random_order = 0; my $opt_one = 0; my @opt_exclude = (); my @opt_include = (); +my @opt_exclude_env = (); +my @opt_include_env = (); my $opt_testenv = 0; my $opt_list = 0; my $opt_mitkrb5 = 0; @@ -198,6 +200,8 @@ Generic options: --testlist=FILE file to read available tests from --exclude=FILE Exclude tests listed in the file --include=FILE Include tests listed in the file + --exclude-env=ENV Exclude tests for the specified environment + --include-env=ENV Include tests for the specified environment Paths: --prefix=DIR prefix to run tests in [st] @@ -243,6 +247,8 @@ my $result = GetOptions ( 'one' => \$opt_one, 'exclude=s' => \@opt_exclude, 'include=s' => \@opt_include, + 'exclude-env=s' => \@opt_exclude_env, + 'include-env=s' => \@opt_include_env, 'srcdir=s' => \$srcdir, 'bindir=s' => \$bindir, 'testenv' => \$opt_testenv, @@ -1080,12 +1086,38 @@ $envvarstr my $name = $$_[0]; my $envname = $$_[1]; - my $envvars = setup_env($envname, $prefix); + my $envvars = "SKIP"; + + if (@opt_include_env) { + foreach my $env (@opt_include_env) { + if ($envname eq $env) { + $envvars = setup_env($envname, $prefix); + } + } + } elsif (@opt_exclude_env) { + my $excluded = 0; + foreach my $env (@opt_exclude_env) { + if ($envname eq $env) { + $excluded = 1; + } + } + if ($excluded == 0) { + $envvars = setup_env($envname, $prefix); + } + } else { + $envvars = setup_env($envname, $prefix); + } + if (not defined($envvars)) { Subunit::start_testsuite($name); Subunit::end_testsuite($name, "error", "unable to set up environment $envname - exiting"); next; + } elsif ($envvars eq "SKIP") { + Subunit::start_testsuite($name); + Subunit::end_testsuite($name, "skip", + "environment $envname is disabled (via --exclude-env / --include-env command line options) in this test run - skipping"); + next; } elsif ($envvars eq "UNKNOWN") { Subunit::start_testsuite($name); Subunit::end_testsuite($name, "skip", |