smbd: Use share_mode_entry's lease data in delay_rename_for_lease_break()
[gd/samba-autobuild/.git] / wintest / test-s3.py
index 1b9a26d4803c31a26064ac1730f1f6d65543466b..1c5142bea56fc874ff64fa805898d7cd3c5cf38d 100755 (executable)
@@ -1,23 +1,24 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 '''automated testing of Samba3 against windows'''
 
-import sys, os
-import optparse
 import wintest
 
+
 def set_libpath(t):
     t.putenv("LD_LIBRARY_PATH", "${PREFIX}/lib")
 
+
 def set_krb5_conf(t):
     t.run_cmd("mkdir -p ${PREFIX}/etc")
-    t.write_file("${PREFIX}/etc/krb5.conf", 
-                    '''[libdefaults]
+    t.write_file("${PREFIX}/etc/krb5.conf",
+                 '''[libdefaults]
        dns_lookup_realm = false
        dns_lookup_kdc = true''')
 
     t.putenv("KRB5_CONFIG", '${PREFIX}/etc/krb5.conf')
 
+
 def build_s3(t):
     '''build samba3'''
     t.info('Building s3')
@@ -30,6 +31,7 @@ def build_s3(t):
     t.run_cmd('rm -rf ${PREFIX}')
     t.run_cmd('make install')
 
+
 def start_s3(t):
     t.info('Starting Samba3')
     t.chdir("${PREFIX}")
@@ -40,10 +42,11 @@ def start_s3(t):
     t.run_cmd(['sbin/smbd', "-D"])
     t.port_wait("${INTERFACE_IP}", 139)
 
+
 def test_wbinfo(t):
     t.info('Testing wbinfo')
     t.chdir('${PREFIX}')
-    t.cmd_contains("bin/wbinfo --version", ["Version 3."])
+    t.cmd_contains("bin/wbinfo --version", ["Version 4."])
     t.cmd_contains("bin/wbinfo -p", ["Ping to winbindd succeeded"])
     t.retry_cmd("bin/wbinfo --online-status",
                 ["BUILTIN : online",
@@ -52,7 +55,7 @@ def test_wbinfo(t):
                 casefold=True)
     t.cmd_contains("bin/wbinfo -u",
                    ["${WIN_DOMAIN}/administrator",
-                    "${WIN_DOMAIN}/krbtgt" ],
+                    "${WIN_DOMAIN}/krbtgt"],
                    casefold=True)
     t.cmd_contains("bin/wbinfo -g",
                    ["${WIN_DOMAIN}/domain users",
@@ -70,14 +73,18 @@ def test_wbinfo(t):
                 ["plaintext password authentication succeeded",
                  "challenge/response password authentication succeeded"])
 
+    t.retry_cmd("bin/wbinfo --krb5auth=${WIN_DOMAIN}/administrator%${WIN_PASS}",
+                ["succeeded"])
+
 
 def test_smbclient(t):
     t.info('Testing smbclient')
+    smbclient = t.getvar("smbclient")
     t.chdir('${PREFIX}')
-    t.cmd_contains("bin/smbclient --version", ["Version 3."])
-    t.cmd_contains('bin/smbclient -L ${INTERFACE_IP} -U%', ["Domain=[${WIN_DOMAIN}]", "test", "IPC$", "Samba 3."],
+    t.cmd_contains("%s --version" % (smbclient), ["Version 4."])
+    t.cmd_contains('%s -L ${INTERFACE_IP} -U%%' % (smbclient), ["Domain=[${WIN_DOMAIN}]", "test", "IPC$", "Samba 4."],
                    casefold=True)
-    child = t.pexpect_spawn('bin/smbclient //${HOSTNAME}.${WIN_REALM}/test -Uroot@${WIN_REALM}%${PASSWORD2}')
+    child = t.pexpect_spawn('%s //${HOSTNAME}.${WIN_REALM}/test -Uroot@${WIN_REALM}%%${PASSWORD2}' % (smbclient))
     child.expect("smb:")
     child.sendline("dir")
     child.expect("blocks available")
@@ -88,7 +95,7 @@ def test_smbclient(t):
     child.sendline("cd ..")
     child.sendline("rmdir testdir")
 
-    child = t.pexpect_spawn('bin/smbclient //${HOSTNAME}.${WIN_REALM}/test -Uroot@${WIN_REALM}%${PASSWORD2} -k')
+    child = t.pexpect_spawn('%s //${HOSTNAME}.${WIN_REALM}/test -Uroot@${WIN_REALM}%%${PASSWORD2} -k' % (smbclient))
     child.expect("smb:")
     child.sendline("dir")
     child.expect("blocks available")
@@ -99,10 +106,11 @@ def test_smbclient(t):
     child.sendline("cd ..")
     child.sendline("rmdir testdir")
 
+
 def create_shares(t):
     t.info("Adding test shares")
     t.chdir('${PREFIX}')
-    t.write_file("lib/smb.conf", '''
+    t.write_file("etc/smb.conf", '''
 [test]
        path = ${PREFIX}/test
        read only = no
@@ -122,7 +130,7 @@ def prep_join_as_member(t, vm):
     child = t.open_telnet("${WIN_HOSTNAME}", "administrator", "${WIN_PASS}", set_time=True)
     t.get_ipconfig(child)
     t.del_files(["var", "private"])
-    t.write_file("lib/smb.conf", '''
+    t.write_file("etc/smb.conf", '''
 [global]
        netbios name = ${HOSTNAME}
        log level = ${DEBUGLEVEL}
@@ -143,17 +151,19 @@ def prep_join_as_member(t, vm):
         panic action = xterm -e gdb --pid %d
     ''')
 
+
 def join_as_member(t, vm):
     '''join a windows domain as a member server'''
     t.setwinvars(vm)
     t.info("Joining ${WIN_VM} as a member using net ads join")
     t.port_wait("${WIN_IP}", 389)
-    t.retry_cmd("host -t SRV _ldap._tcp.${WIN_REALM} ${WIN_IP}", ['has SRV record'] )
+    t.retry_cmd("host -t SRV _ldap._tcp.${WIN_REALM} ${WIN_IP}", ['has SRV record'])
     t.cmd_contains("bin/net ads join -Uadministrator%${WIN_PASS}", ["Joined"])
     t.cmd_contains("bin/net ads testjoin", ["Join is OK"])
     t.cmd_contains("bin/net ads dns register ${HOSTNAME}.${WIN_REALM} -P", ["Successfully registered hostname with DNS"])
     t.cmd_contains("host -t A ${HOSTNAME}.${WIN_REALM}",
-                 ['${HOSTNAME}.${WIN_REALM} has address'])
+                   ['${HOSTNAME}.${WIN_REALM} has address'])
+
 
 def create_root_account(t, vm):
     t.setwinvars(vm)
@@ -163,13 +173,14 @@ def create_root_account(t, vm):
     child = t.pexpect_spawn('bin/net ads password root -Uadministrator%${WIN_PASS}')
     child.expect("Enter new password for root")
     child.sendline("${PASSWORD2}")
-    child.expect("Password change for ");
+    child.expect("Password change for ")
     child.expect(" completed")
     child = t.pexpect_spawn('bin/net rpc shell -S ${WIN_HOSTNAME}.${WIN_REALM} -Uadministrator%${WIN_PASS}')
     child.expect("net rpc>")
     child.sendline("user edit disabled root no")
     child.expect("Set root's disabled flag")
 
+
 def test_join_as_member(t, vm):
     '''test the domain join'''
     t.setwinvars(vm)
@@ -182,7 +193,8 @@ def test_join_as_member(t, vm):
 def test_s3(t):
     '''basic s3 testing'''
 
-    t.setvar("SAMBA_VERSION", "Version 3")
+    t.setvar("SAMBA_VERSION", "Version 4")
+    t.setvar("smbclient", "bin/smbclient")
     t.check_prerequesites()
     set_libpath(t)