mirror of
https://github.com/samba-team/samba.git
synced 2025-02-24 13:57:43 +03:00
selftest: allow environment options
We support "local" and "client" (default) now. We can decide if we want to run a client against the server (with a special client.conf) or if we want to run tests localy on the server with the same config as the server. metze
This commit is contained in:
parent
4e0a619701
commit
52a49b448e
@ -572,16 +572,6 @@ sub write_clientconf($$)
|
|||||||
if (defined($vars->{REALM})) {
|
if (defined($vars->{REALM})) {
|
||||||
print CF "\trealm = $vars->{REALM}\n";
|
print CF "\trealm = $vars->{REALM}\n";
|
||||||
}
|
}
|
||||||
if (defined($vars->{NCALRPCDIR})) {
|
|
||||||
print CF "\tncalrpc dir = $vars->{NCALRPCDIR}\n";
|
|
||||||
}
|
|
||||||
if (defined($vars->{PIDDIR})) {
|
|
||||||
print CF "\tpid directory = $vars->{PIDDIR}\n";
|
|
||||||
}
|
|
||||||
if (defined($vars->{WINBINDD_SOCKET_DIR})) {
|
|
||||||
print CF "\twinbindd socket directory = $vars->{WINBINDD_SOCKET_DIR}\n";
|
|
||||||
print CF "\twinbindd:socket dir = $vars->{WINBINDD_SOCKET_DIR}\n";
|
|
||||||
}
|
|
||||||
if ($opt_socket_wrapper) {
|
if ($opt_socket_wrapper) {
|
||||||
print CF "\tinterfaces = $interfaces\n";
|
print CF "\tinterfaces = $interfaces\n";
|
||||||
}
|
}
|
||||||
@ -706,6 +696,17 @@ $| = 1;
|
|||||||
|
|
||||||
my %running_envs = ();
|
my %running_envs = ();
|
||||||
|
|
||||||
|
sub get_running_env($)
|
||||||
|
{
|
||||||
|
my ($name) = @_;
|
||||||
|
|
||||||
|
my $envname = $name;
|
||||||
|
|
||||||
|
$envname =~ s/:.*//;
|
||||||
|
|
||||||
|
return $running_envs{$envname};
|
||||||
|
}
|
||||||
|
|
||||||
my @exported_envvars = (
|
my @exported_envvars = (
|
||||||
# domain stuff
|
# domain stuff
|
||||||
"DOMAIN",
|
"DOMAIN",
|
||||||
@ -743,13 +744,22 @@ $SIG{INT} = $SIG{QUIT} = $SIG{TERM} = sub {
|
|||||||
|
|
||||||
sub setup_env($)
|
sub setup_env($)
|
||||||
{
|
{
|
||||||
my ($envname) = @_;
|
my ($name) = @_;
|
||||||
|
|
||||||
|
my $testenv_vars = undef;
|
||||||
|
|
||||||
|
my $envname = $name;
|
||||||
|
my $option = $name;
|
||||||
|
|
||||||
|
$envname =~ s/:.*//;
|
||||||
|
$option =~ s/^[^:]*://;
|
||||||
|
|
||||||
|
$option = "client" if $option eq "";
|
||||||
|
|
||||||
my $testenv_vars;
|
|
||||||
if ($envname eq "none") {
|
if ($envname eq "none") {
|
||||||
$testenv_vars = {};
|
$testenv_vars = \{};
|
||||||
} elsif (defined($running_envs{$envname})) {
|
} elsif (defined(get_running_env($envname))) {
|
||||||
$testenv_vars = $running_envs{$envname};
|
$testenv_vars = get_running_env($envname);
|
||||||
if (not $target->check_env($testenv_vars)) {
|
if (not $target->check_env($testenv_vars)) {
|
||||||
$testenv_vars = undef;
|
$testenv_vars = undef;
|
||||||
}
|
}
|
||||||
@ -761,8 +771,16 @@ sub setup_env($)
|
|||||||
|
|
||||||
$running_envs{$envname} = $testenv_vars;
|
$running_envs{$envname} = $testenv_vars;
|
||||||
|
|
||||||
SocketWrapper::set_default_iface(6);
|
if ($option eq "local") {
|
||||||
write_clientconf($conffile, $testenv_vars);
|
SocketWrapper::set_default_iface($testenv_vars->{SOCKET_WRAPPER_DEFAULT_IFACE});
|
||||||
|
$ENV{SMB_CONF_PATH} = $testenv_vars->{SERVERCONFFILE};
|
||||||
|
} elsif ($option eq "client") {
|
||||||
|
SocketWrapper::set_default_iface(6);
|
||||||
|
write_clientconf($conffile, $testenv_vars);
|
||||||
|
$ENV{SMB_CONF_PATH} = $conffile;
|
||||||
|
} else {
|
||||||
|
die("Unknown option[$option] for envname[$envname]");
|
||||||
|
}
|
||||||
|
|
||||||
foreach (@exported_envvars) {
|
foreach (@exported_envvars) {
|
||||||
if (defined($testenv_vars->{$_})) {
|
if (defined($testenv_vars->{$_})) {
|
||||||
@ -792,21 +810,21 @@ sub getlog_env($)
|
|||||||
{
|
{
|
||||||
my ($envname) = @_;
|
my ($envname) = @_;
|
||||||
return "" if ($envname eq "none");
|
return "" if ($envname eq "none");
|
||||||
return $target->getlog_env($running_envs{$envname});
|
return $target->getlog_env(get_running_env($envname));
|
||||||
}
|
}
|
||||||
|
|
||||||
sub check_env($)
|
sub check_env($)
|
||||||
{
|
{
|
||||||
my ($envname) = @_;
|
my ($envname) = @_;
|
||||||
return 1 if ($envname eq "none");
|
return 1 if ($envname eq "none");
|
||||||
return $target->check_env($running_envs{$envname});
|
return $target->check_env(get_running_env($envname));
|
||||||
}
|
}
|
||||||
|
|
||||||
sub teardown_env($)
|
sub teardown_env($)
|
||||||
{
|
{
|
||||||
my ($envname) = @_;
|
my ($envname) = @_;
|
||||||
return if ($envname eq "none");
|
return if ($envname eq "none");
|
||||||
$target->teardown_env($running_envs{$envname});
|
$target->teardown_env(get_running_env($envname));
|
||||||
delete $running_envs{$envname};
|
delete $running_envs{$envname};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -751,10 +751,14 @@ nogroup:x:65534:nobody
|
|||||||
WINBINDD_SOCKET_DIR => $winbindd_socket_dir,
|
WINBINDD_SOCKET_DIR => $winbindd_socket_dir,
|
||||||
NCALRPCDIR => $ncalrpcdir,
|
NCALRPCDIR => $ncalrpcdir,
|
||||||
LOCKDIR => $lockdir,
|
LOCKDIR => $lockdir,
|
||||||
|
SERVERCONFFILE => $conffile,
|
||||||
CONFIGURATION => $configuration,
|
CONFIGURATION => $configuration,
|
||||||
SOCKET_WRAPPER_DEFAULT_IFACE => $swiface,
|
SOCKET_WRAPPER_DEFAULT_IFACE => $swiface,
|
||||||
NSS_WRAPPER_PASSWD => $nsswrap_passwd,
|
NSS_WRAPPER_PASSWD => $nsswrap_passwd,
|
||||||
NSS_WRAPPER_GROUP => $nsswrap_group,
|
NSS_WRAPPER_GROUP => $nsswrap_group,
|
||||||
|
SMBD_TEST_FIFO => "$prefix/smbd_test.fifo",
|
||||||
|
SMBD_TEST_LOG => "$prefix/smbd_test.log",
|
||||||
|
SMBD_TEST_LOG_POS => 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (defined($self->{ldap})) {
|
if (defined($self->{ldap})) {
|
||||||
@ -812,10 +816,6 @@ sub provision_member($$$)
|
|||||||
|
|
||||||
system($cmd) == 0 or die("Join failed\n$cmd");
|
system($cmd) == 0 or die("Join failed\n$cmd");
|
||||||
|
|
||||||
$ret->{SMBD_TEST_FIFO} = "$prefix/smbd_test.fifo";
|
|
||||||
$ret->{SMBD_TEST_LOG} = "$prefix/smbd_test.log";
|
|
||||||
$ret->{SMBD_TEST_LOG_POS} = 0;
|
|
||||||
|
|
||||||
$ret->{DC_SERVER} = $dcvars->{SERVER};
|
$ret->{DC_SERVER} = $dcvars->{SERVER};
|
||||||
$ret->{DC_SERVER_IP} = $dcvars->{SERVER_IP};
|
$ret->{DC_SERVER_IP} = $dcvars->{SERVER_IP};
|
||||||
$ret->{DC_NETBIOSNAME} = $dcvars->{NETBIOSNAME};
|
$ret->{DC_NETBIOSNAME} = $dcvars->{NETBIOSNAME};
|
||||||
@ -841,9 +841,6 @@ sub provision_dc($$)
|
|||||||
$self->add_wins_config("$prefix/private") or
|
$self->add_wins_config("$prefix/private") or
|
||||||
die("Unable to add wins configuration");
|
die("Unable to add wins configuration");
|
||||||
|
|
||||||
$ret->{SMBD_TEST_FIFO} = "$prefix/server_test.fifo";
|
|
||||||
$ret->{SMBD_TEST_LOG} = "$prefix/server_test.log";
|
|
||||||
$ret->{SMBD_TEST_LOG_POS} = 0;
|
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,8 +298,8 @@ plantest "blackbox.nmblookup" member $samba4srcdir/utils/tests/test_nmblookup.sh
|
|||||||
plantest "blackbox.locktest" dc $samba4srcdir/torture/tests/test_locktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
|
plantest "blackbox.locktest" dc $samba4srcdir/torture/tests/test_locktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
|
||||||
plantest "blackbox.masktest" dc $samba4srcdir/torture/tests/test_masktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
|
plantest "blackbox.masktest" dc $samba4srcdir/torture/tests/test_masktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
|
||||||
plantest "blackbox.gentest" dc $samba4srcdir/torture/tests/test_gentest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
|
plantest "blackbox.gentest" dc $samba4srcdir/torture/tests/test_gentest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
|
||||||
plantest "blackbox.wbinfo" dc $samba4srcdir/../nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$USERNAME" "\$PASSWORD" "dc"
|
plantest "blackbox.wbinfo" dc:local $samba4srcdir/../nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$USERNAME" "\$PASSWORD" "dc"
|
||||||
plantest "blackbox.wbinfo" member $samba4srcdir/../nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$DC_USERNAME" "\$DC_PASSWORD" "member"
|
plantest "blackbox.wbinfo" member:local $samba4srcdir/../nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$DC_USERNAME" "\$DC_PASSWORD" "member"
|
||||||
|
|
||||||
# Tests using the "Simple" NTVFS backend
|
# Tests using the "Simple" NTVFS backend
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user