Fix failures in the winbind struct-based test.
[metze/samba/wip.git] / source4 / selftest / target / Samba4.pm
index 416a376f68a68226006fd1262f494012b748c3e8..8835f69c6c51908cc1a520d39dc8b7f93531e930 100644 (file)
@@ -201,8 +201,6 @@ sub mk_fedora_ds($$$)
 
        my $pidfile = "$fedora_ds_dir/logs/slapd-samba4.pid";
 
-       system("$self->{bindir}/ad2oLschema $configuration -H $ldapdir/schema-tmp.ldb --option=convert:target=fedora-ds -I $self->{setupdir}/schema-map-fedora-ds-1.0 -O $ldapdir/99_ad.ldif >&2") == 0 or die("schema conversion for Fedora DS failed");
-
 my $dir = getcwd();
 chdir "$ENV{FEDORA_DS_ROOT}/bin" || die;
        if (system("perl $ENV{FEDORA_DS_ROOT}/sbin/setup-ds.pl --silent --file=$fedora_ds_inf >&2") != 0) {
@@ -222,9 +220,6 @@ sub mk_openldap($$$)
        my $pidfile = "$ldapdir/slapd.pid";
        my $modconf = "$ldapdir/modules.conf";
 
-       #This uses the backend provision we just did, to read out the schema
-       system("$self->{bindir}/ad2oLschema $configuration --option=convert:target=openldap -H $ldapdir/schema-tmp.ldb -I $self->{setupdir}/schema-map-openldap-2.3 -O $ldapdir/backend-schema.schema >&2") == 0 or die("schema conversion for OpenLDAP failed");
-
        my $oldpath = $ENV{PATH};
        my $olpath = "";
        my $olroot = "";
@@ -525,8 +520,9 @@ sub provision($$$$$$)
        my $privatedir = "$prefix_abs/private";
        my $ncalrpcdir = "$prefix_abs/ncalrpc";
        my $lockdir = "$prefix_abs/lockdir";
-       my $winbindd_socket_dir = "$prefix_abs/winbind_socket";
-       my $winbindd_priv_pipe_dir = "$piddir/smbd.tmp/winbind_pipe";
+       my $winbindd_socket_dir = "$prefix_abs/winbindd_socket";
+       my $winbindd_privileged_socket_dir = "$prefix_abs/winbindd_privileged_socket";
+       my $ntp_signd_socket_dir = "$prefix_abs/ntp_signd_socket";
        my $nsswrap_passwd = "$etcdir/passwd";
        my $nsswrap_group = "$etcdir/group";
 
@@ -561,6 +557,8 @@ sub provision($$$$$$)
        modules dir = $self->{bindir}/modules
        js include = $srcdir/scripting/libjs
        winbindd socket directory = $winbindd_socket_dir
+       winbindd privileged socket directory = $winbindd_privileged_socket_dir
+       ntp signd socket directory = $ntp_signd_socket_dir
         winbind separator = /
        name resolve order = bcast
        interfaces = $interfaces
@@ -572,14 +570,10 @@ sub provision($$$$$$)
        server max protocol = SMB2
        notify:inotify = false
        ldb:nosync = true
-       system:anonymous = true
 #We don't want to pass our self-tests if the PAC code is wrong
        gensec:require_pac = true
        log level = $smbd_loglevel
 
-       # this is a global option
-       opendb:oplocks = yes
-
 [tmp]
        path = $tmpdir
        read only = no
@@ -587,6 +581,7 @@ sub provision($$$$$$)
        posix:sharedelay = 100000
        posix:eadb = $lockdir/eadb.tdb
        posix:oplocktimeout = 3
+       posix:writetimeupdatedelay = 500000
 
 [test1]
        path = $tmpdir/test1
@@ -595,6 +590,7 @@ sub provision($$$$$$)
        posix:sharedelay = 100000
        posix:eadb = $lockdir/eadb.tdb
        posix:oplocktimeout = 3
+       posix:writetimeupdatedelay = 500000
 
 [test2]
        path = $tmpdir/test2
@@ -603,6 +599,7 @@ sub provision($$$$$$)
        posix:sharedelay = 100000
        posix:eadb = $lockdir/eadb.tdb
        posix:oplocktimeout = 3
+       posix:writetimeupdatedelay = 500000
 
 [cifs]
        read only = no
@@ -703,13 +700,13 @@ nogroup:x:65534:nobody
        my @provision_options = ();
        push (@provision_options, "NSS_WRAPPER_PASSWD=\"$nsswrap_passwd\"");
        push (@provision_options, "NSS_WRAPPER_GROUP=\"$nsswrap_group\"");
-       if (defined($ENV{PROVISION_EJS})) {
-               push (@provision_options, "$self->{bindir}/smbscript");
-               push (@provision_options, "$self->{setupdir}/provision.js");
-       } else {
-               push (@provision_options, "$self->{bindir}/smbpython");
-               push (@provision_options, "$self->{setupdir}/provision");
+       if (defined($ENV{GDB_PROVISION})) {
+               push (@provision_options, "gdb --args python");
        }
+       if (defined($ENV{VALGRIND_PROVISION})) {
+               push (@provision_options, "valgrind");
+       }
+       push (@provision_options, "$self->{setupdir}/provision");
        push (@provision_options, split(' ', $configuration));
        push (@provision_options, "--host-name=$netbiosname");
        push (@provision_options, "--host-ip=$ifaceipv4");
@@ -720,8 +717,7 @@ nogroup:x:65534:nobody
        push (@provision_options, "--krbtgtpass=krbtgt$password");
        push (@provision_options, "--machinepass=machine$password");
        push (@provision_options, "--root=$unix_name");
-       push (@provision_options, "--simple-bind-dn=cn=Manager,$localbasedn");
-       push (@provision_options, "--password=$password");
+
        push (@provision_options, "--server-role=\"$server_role\"");
 
        my $ldap_uri= "$ldapdir/ldapi";
@@ -742,7 +738,6 @@ nogroup:x:65534:nobody
                PASSWORD => $password,
                LDAPDIR => $ldapdir,
                WINBINDD_SOCKET_DIR => $winbindd_socket_dir,
-               WINBINDD_PRIV_PIPE_DIR => $winbindd_priv_pipe_dir,
                NCALRPCDIR => $ncalrpcdir,
                LOCKDIR => $lockdir,
                CONFIGURATION => $configuration,
@@ -754,15 +749,18 @@ nogroup:x:65534:nobody
        if (defined($self->{ldap})) {
 
                 push (@provision_options, "--ldap-backend=$ldap_uri");
-               system("$self->{bindir}/smbpython $self->{setupdir}/provision-backend $configuration --ldap-manager-pass=$password --root=$unix_name --realm=$realm --domain=$domain --host-name=$netbiosname --ldap-backend-type=$self->{ldap}>&2") == 0 or die("backend provision failed");
+               system("$self->{setupdir}/provision-backend $configuration --ldap-admin-pass=$password --root=$unix_name --realm=$realm --domain=$domain --host-name=$netbiosname --ldap-backend-type=$self->{ldap}>&2") == 0 or die("backend provision failed");
+
+               push (@provision_options, "--password=$password");
 
                if ($self->{ldap} eq "openldap") {
+                      push (@provision_options, "--username=samba-admin");
                       ($ret->{SLAPD_CONF}, $ret->{OPENLDAP_PIDFILE}) = $self->mk_openldap($ldapdir, $configuration) or die("Unable to create openldap directories");
                       push (@provision_options, "--ldap-backend-type=openldap");
                } elsif ($self->{ldap} eq "fedora-ds") {
+                      push (@provision_options, "--simple-bind-dn=cn=Manager,$localbasedn");
                       ($ret->{FEDORA_DS_DIR}, $ret->{FEDORA_DS_PIDFILE}) = $self->mk_fedora_ds($ldapdir, $configuration) or die("Unable to create fedora ds directories");
                       push (@provision_options, "--ldap-backend-type=fedora-ds");
-                      push (@provision_options, "'--aci=aci:: KHRhcmdldGF0dHIgPSAiKiIpICh2ZXJzaW9uIDMuMDthY2wgImZ1bGwgYWNjZXNzIHRvIGFsbCBieSBhbGwiO2FsbG93IChhbGwpKHVzZXJkbiA9ICJsZGFwOi8vL2FueW9uZSIpOykK'");
                  }
 
                $self->slapd_start($ret) or