summaryrefslogtreecommitdiff
path: root/selftest
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2016-09-29 16:50:58 +0100
committerJeremy Allison <jra@samba.org>2016-10-03 19:49:19 +0200
commitebfe3c85d0bbdf5d5f7459ddd61e3b44c3ec2bd3 (patch)
tree3f2c141739ac03f66d8e985385e7929a83c47c92 /selftest
parentc514fb6b62a904b7aaea17a78ea05299e0f462a1 (diff)
downloadsamba-ebfe3c85d0bbdf5d5f7459ddd61e3b44c3ec2bd3.tar.gz
Add a blackbox tests for id & getent to test domain@realm type credentials
Using domain@realm credentials has been problematic when global conf setting "winbind use default domain" is enabled, this patch creates a new s4member_dflt_domain environment (where "winbind use default domain" is enabled) and runs getent & id against the normal s4member & and new s4member_dflt_domain environments BUG: https://bugzilla.samba.org/show_bug.cgi?id=12298 Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Jeremy Allison <jra@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'selftest')
-rw-r--r--selftest/target/Samba.pm1
-rwxr-xr-xselftest/target/Samba4.pm34
2 files changed, 31 insertions, 4 deletions
diff --git a/selftest/target/Samba.pm b/selftest/target/Samba.pm
index d60358e0dcd..24484c970e7 100644
--- a/selftest/target/Samba.pm
+++ b/selftest/target/Samba.pm
@@ -307,6 +307,7 @@ sub get_interface($)
$interfaces{"fileserver"} = 35;
$interfaces{"fakednsforwarder1"} = 36;
$interfaces{"fakednsforwarder2"} = 37;
+ $interfaces{"s4member_dflt"} = 38;
# update lib/socket_wrapper/socket_wrapper.c
# #define MAX_WRAPPED_INTERFACES 40
diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm
index 176b3c34998..a09abea5934 100755
--- a/selftest/target/Samba4.pm
+++ b/selftest/target/Samba4.pm
@@ -965,9 +965,9 @@ $extra_smbconf_shares
return $self->provision_raw_step2($ctx, $ret);
}
-sub provision_s4member($$$)
+sub provision_s4member($$$$$)
{
- my ($self, $prefix, $dcvars) = @_;
+ my ($self, $prefix, $dcvars, $hostname, $more_conf) = @_;
print "PROVISIONING MEMBER...\n";
my $extra_smb_conf = "
passdb backend = samba_dsdb
@@ -986,9 +986,12 @@ rpc_server:spoolss = embedded
rpc_daemon:spoolssd = embedded
rpc_server:tcpip = no
";
+ if ($more_conf) {
+ $extra_smb_conf = $extra_smb_conf . $more_conf . "\n";
+ }
my $ret = $self->provision($prefix,
"member server",
- "s4member",
+ $hostname,
"SAMBADOMAIN",
"samba.example.com",
"2008",
@@ -1988,6 +1991,11 @@ sub setup_env($$$)
$self->setup_ad_dc_ntvfs("$path/ad_dc_ntvfs");
}
return $self->setup_subdom_dc("$path/subdom_dc", $self->{vars}->{ad_dc_ntvfs});
+ } elsif ($envname eq "s4member_dflt_domain") {
+ if (not defined($self->{vars}->{ad_dc_ntvfs})) {
+ $self->setup_ad_dc_ntvfs("$path/ad_dc_ntvfs");
+ }
+ return $self->setup_s4member_dflt_domain("$path/s4member_dflt_domain", $self->{vars}->{ad_dc_ntvfs});
} elsif ($envname eq "s4member") {
if (not defined($self->{vars}->{ad_dc_ntvfs})) {
$self->setup_ad_dc_ntvfs("$path/ad_dc_ntvfs");
@@ -2026,7 +2034,7 @@ sub setup_s4member($$$)
{
my ($self, $path, $dc_vars) = @_;
- my $env = $self->provision_s4member($path, $dc_vars);
+ my $env = $self->provision_s4member($path, $dc_vars, "s4member");
if (defined $env) {
if (not defined($self->check_or_start($env, "standard"))) {
@@ -2039,6 +2047,24 @@ sub setup_s4member($$$)
return $env;
}
+sub setup_s4member_dflt_domain($$$)
+{
+ my ($self, $path, $dc_vars) = @_;
+
+ my $env = $self->provision_s4member($path, $dc_vars, "s4member_dflt",
+ "winbind use default domain = yes");
+
+ if (defined $env) {
+ if (not defined($self->check_or_start($env, "standard"))) {
+ return undef;
+ }
+
+ $self->{vars}->{s4member_dflt_domain} = $env;
+ }
+
+ return $env;
+}
+
sub setup_rpc_proxy($$$)
{
my ($self, $path, $dc_vars) = @_;