torture: beginning of a mdssvc RPC service test-suite
[samba.git] / source4 / torture / wscript_build
index d6660bea63595a24581f000a9a7bab21d5b32703..1908f7eac3110e2326b536314e9b3b7c51b1b0b2 100644 (file)
 #!/usr/bin/env python
 
+provision = bld.pyembed_libname('PROVISION')
+samba_net = bld.pyembed_libname('samba-net')
 
 bld.SAMBA_SUBSYSTEM('TORTURE_UTIL',
        source='util_smb.c',
-       public_deps='torture POPT_CREDENTIALS',
-       deps='LIBCLI_RAW'
+       public_deps='torture popt POPT_CREDENTIALS',
+       deps='smbclient-raw'
        )
 
 
 bld.SAMBA_MODULE('TORTURE_BASIC',
        source='basic/base.c basic/misc.c basic/scanner.c basic/utable.c basic/charset.c basic/mangle_test.c basic/denytest.c basic/aliases.c basic/locking.c basic/secleak.c basic/rename.c basic/dir.c basic/delete.c basic/unlink.c basic/disconnect.c basic/delaywrite.c basic/attr.c basic/properties.c',
        subsystem='smbtorture',
-       deps='LIBCLI_SMB POPT_CREDENTIALS TORTURE_UTIL LIBCLI_RAW TORTURE_RAW',
+       deps='LIBCLI_SMB popt POPT_CREDENTIALS TORTURE_UTIL smbclient-raw TORTURE_RAW',
        internal_module=True,
        autoproto='basic/proto.h',
-       init_function='torture_base_init'
+       init_function='torture_base_init',
+       enabled=bld.PYTHON_BUILD_IS_ENABLED()
        )
 
 
 bld.SAMBA_MODULE('TORTURE_RAW',
-       source='raw/qfsinfo.c raw/qfileinfo.c raw/setfileinfo.c raw/search.c raw/close.c raw/open.c raw/mkdir.c raw/oplock.c raw/notify.c raw/mux.c raw/ioctl.c raw/chkpath.c raw/unlink.c raw/read.c raw/context.c raw/write.c raw/lock.c raw/pingpong.c raw/lockbench.c raw/lookuprate.c raw/tconrate.c raw/openbench.c raw/rename.c raw/eas.c raw/streams.c raw/acls.c raw/seek.c raw/samba3hide.c raw/samba3misc.c raw/composite.c raw/raw.c raw/offline.c',
+       source='raw/qfsinfo.c raw/qfileinfo.c raw/setfileinfo.c raw/search.c raw/close.c raw/open.c raw/mkdir.c raw/oplock.c raw/notify.c raw/mux.c raw/ioctl.c raw/chkpath.c raw/unlink.c raw/read.c raw/context.c raw/session.c raw/write.c raw/lock.c raw/pingpong.c raw/lockbench.c raw/lookuprate.c raw/tconrate.c raw/openbench.c raw/rename.c raw/eas.c raw/streams.c raw/acls.c raw/seek.c raw/samba3hide.c raw/samba3misc.c raw/composite.c raw/raw.c raw/offline.c',
        autoproto='raw/proto.h',
        subsystem='smbtorture',
        init_function='torture_raw_init',
-       deps='LIBCLI_SMB LIBCLI_LSA LIBCLI_SMB_COMPOSITE POPT_CREDENTIALS TORTURE_UTIL',
-       internal_module=True
+       deps='LIBCLI_SMB LIBCLI_LSA LIBCLI_SMB_COMPOSITE popt POPT_CREDENTIALS TORTURE_UTIL',
+       internal_module=True,
+       enabled=bld.PYTHON_BUILD_IS_ENABLED()
        )
 
 bld.RECURSE('smb2')
 bld.RECURSE('winbind')
 bld.RECURSE('libnetapi')
 bld.RECURSE('libsmbclient')
+bld.RECURSE('gpo')
+
+ntvfs_specific = dict(source='', deps='')
+
+# Yes, the spoolss_notify test uses the NTVFS file server to run the SMB server expected
+# to handle the RPC callback!
+if bld.CONFIG_SET('WITH_NTVFS_FILESERVER'):
+       ntvfs_specific['source'] += ' rpc/spoolss_notify.c'
+       ntvfs_specific['deps'] += ' SMB_SERVER dcerpc_server ntvfs'
 
 bld.SAMBA_SUBSYSTEM('TORTURE_NDR',
-       source='ndr/ndr.c ndr/winreg.c ndr/atsvc.c ndr/lsa.c ndr/epmap.c ndr/dfs.c ndr/netlogon.c ndr/drsuapi.c ndr/spoolss.c ndr/samr.c ndr/dfsblob.c ndr/drsblobs.c ndr/nbt.c ndr/ntlmssp.c ndr/backupkey.c',
+        source='''ndr/ndr.c
+                  ndr/winreg.c
+                  ndr/atsvc.c
+                  ndr/lsa.c
+                  ndr/epmap.c
+                  ndr/dfs.c
+                  ndr/netlogon.c
+                  ndr/drsuapi.c
+                  ndr/spoolss.c
+                  ndr/ntprinting.c
+                  ndr/samr.c
+                  ndr/dfsblob.c
+                  ndr/drsblobs.c
+                  ndr/dnsp.c
+                  ndr/nbt.c
+                  ndr/ntlmssp.c
+                  ndr/string.c
+                  ndr/backupkey.c
+                  ndr/witness.c
+                  ndr/clusapi.c
+                  ndr/negoex.c
+                  ndr/krb5pac.c
+                  ndr/winspool.c
+                  ndr/cabinet.c
+                  ndr/charset.c
+                 ''',
        autoproto='ndr/proto.h',
-       deps='torture'
+       deps='torture krb5samba',
+       enabled=bld.PYTHON_BUILD_IS_ENABLED()
        )
 
-
+bld.SAMBA_SUBSYSTEM('IREMOTEWINSPOOL_COMMON',
+                    source='rpc/iremotewinspool_common.c',
+                    deps='talloc',
+                    enabled=bld.PYTHON_BUILD_IS_ENABLED())
+
+torture_rpc_backupkey = ''
+if bld.AD_DC_BUILD_IS_ENABLED():
+    if (bld.CONFIG_SET('HAVE_GNUTLS_PRIVKEY_EXPORT_X509') and
+        bld.CONFIG_SET('HAVE_GNUTLS_X509_CRT_SET_SUBJECT_UNIQUE_ID')):
+        torture_rpc_backupkey = 'rpc/backupkey.c'
+    else:
+        torture_rpc_backupkey = 'rpc/backupkey_heimdal.c'
 bld.SAMBA_MODULE('torture_rpc',
-       source='rpc/join.c rpc/lsa.c rpc/forest_trust.c rpc/lsa_lookup.c rpc/session_key.c rpc/echo.c rpc/dfs.c rpc/drsuapi.c rpc/drsuapi_cracknames.c rpc/dsgetinfo.c rpc/spoolss.c rpc/spoolss_notify.c rpc/spoolss_win.c rpc/spoolss_access.c rpc/unixinfo.c rpc/samr.c rpc/samr_accessmask.c rpc/wkssvc.c rpc/srvsvc.c rpc/svcctl.c rpc/atsvc.c rpc/eventlog.c rpc/epmapper.c rpc/winreg.c rpc/initshutdown.c rpc/oxidresolve.c rpc/remact.c rpc/mgmt.c rpc/scanner.c rpc/autoidl.c rpc/countcalls.c rpc/testjoin.c rpc/schannel.c rpc/netlogon.c rpc/remote_pac.c rpc/samlogon.c rpc/samsync.c rpc/multi_bind.c rpc/dssetup.c rpc/alter_context.c rpc/bench.c rpc/samba3rpc.c rpc/rpc.c rpc/async_bind.c rpc/handles.c rpc/frsapi.c rpc/object_uuid.c rpc/ntsvcs.c rpc/browser.c rpc/bind.c rpc/backupkey.c',
-       autoproto='rpc/proto.h',
-       subsystem='smbtorture',
-       init_function='torture_rpc_init',
-       deps='ndr-table RPC_NDR_UNIXINFO dcerpc-samr RPC_NDR_WINREG RPC_NDR_INITSHUTDOWN RPC_NDR_OXIDRESOLVER RPC_NDR_EVENTLOG RPC_NDR_ECHO RPC_NDR_SVCCTL RPC_NDR_NETLOGON dcerpc-atsvc RPC_NDR_DRSUAPI RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_FRSAPI RPC_NDR_SPOOLSS RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER RPC_NDR_NTSVCS WB_HELPER samba-net LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP dcerpc_server service process_model ntvfs RPC_NDR_BROWSER LIBCLI_DRSUAPI TORTURE_DFS SMB_SERVER RPC_NDR_BACKUPKEY',
-       internal_module=True
-       )
+                 source='''
+                        rpc/join.c
+                        rpc/lsa.c
+                        rpc/forest_trust.c
+                        rpc/lsa_lookup.c
+                        rpc/session_key.c
+                        rpc/echo.c
+                        rpc/dfs.c
+                        rpc/drsuapi.c
+                        rpc/drsuapi_w2k8.c
+                        rpc/drsuapi_cracknames.c
+                        rpc/dsgetinfo.c
+                        rpc/spoolss.c
+                        rpc/spoolss_win.c
+                        rpc/spoolss_access.c
+                        rpc/unixinfo.c
+                        rpc/samr.c
+                        rpc/samr_accessmask.c
+                        rpc/samr_priv.c
+                        rpc/wkssvc.c
+                        rpc/srvsvc.c
+                        rpc/svcctl.c
+                        rpc/atsvc.c
+                        rpc/eventlog.c
+                        rpc/epmapper.c
+                        rpc/winreg.c
+                        rpc/initshutdown.c
+                        rpc/oxidresolve.c
+                        rpc/remact.c
+                        rpc/mgmt.c
+                        rpc/scanner.c
+                        rpc/countcalls.c
+                        rpc/testjoin.c
+                        rpc/schannel.c
+                        rpc/netlogon.c
+                        rpc/remote_pac.c
+                        rpc/samlogon.c
+                        rpc/samsync.c
+                        rpc/dssetup.c
+                        rpc/alter_context.c
+                        rpc/bench.c
+                        rpc/samba3rpc.c
+                        rpc/rpc.c
+                        rpc/async_bind.c
+                        rpc/handles.c
+                        rpc/frsapi.c
+                        rpc/object_uuid.c
+                        rpc/ntsvcs.c
+                        rpc/browser.c
+                        rpc/bind.c
+                        rpc/fsrvp.c
+                        rpc/clusapi.c
+                        rpc/witness.c
+                        rpc/iremotewinspool.c
+                        rpc/iremotewinspool_driver.c
+                        rpc/mdssvc.c
+                        ''' + torture_rpc_backupkey + ntvfs_specific['source'],
+                 autoproto='rpc/proto.h',
+                 subsystem='smbtorture',
+                 init_function='torture_rpc_init',
+                 deps='''
+                      ndr-table
+                      RPC_NDR_UNIXINFO
+                      dcerpc-samr
+                      RPC_NDR_WINREG
+                      RPC_NDR_INITSHUTDOWN
+                      RPC_NDR_OXIDRESOLVER
+                      RPC_NDR_EVENTLOG
+                      RPC_NDR_ECHO
+                      RPC_NDR_SVCCTL
+                      RPC_NDR_NETLOGON
+                      RPC_NDR_ATSVC
+                      RPC_NDR_DRSUAPI
+                      RPC_NDR_LSA
+                      RPC_NDR_EPMAPPER
+                      RPC_NDR_DFS
+                      RPC_NDR_FRSAPI
+                      RPC_NDR_SPOOLSS
+                      RPC_NDR_SRVSVC
+                      RPC_NDR_WKSSVC
+                      RPC_NDR_ROT
+                      RPC_NDR_DSSETUP
+                      RPC_NDR_REMACT
+                      RPC_NDR_OXIDRESOLVER
+                      RPC_NDR_NTSVCS
+                      %s
+                      LIBCLI_AUTH
+                      popt
+                      POPT_CREDENTIALS
+                      TORTURE_LDAP
+                      TORTURE_UTIL
+                      TORTURE_RAP
+                      service
+                      process_model
+                      RPC_NDR_BROWSER
+                      LIBCLI_DRSUAPI
+                      TORTURE_DFS
+                      RPC_NDR_FSRVP
+                      RPC_NDR_CLUSAPI
+                      RPC_NDR_WITNESS
+                      RPC_NDR_BACKUPKEY
+                      RPC_NDR_WINSPOOL
+                      IREMOTEWINSPOOL_COMMON
+                      printer_driver
+                      RPC_NDR_MDSSVC
+                      mdssvc
+                      ''' % samba_net + ntvfs_specific['deps'],
+                 internal_module=True,
+                 enabled=bld.PYTHON_BUILD_IS_ENABLED())
 
 bld.RECURSE('drs')
+bld.RECURSE('dns')
 
 bld.SAMBA_MODULE('TORTURE_RAP',
        source='rap/rap.c rap/rpc.c rap/printing.c rap/sam.c',
        autoproto='rap/proto.h',
        subsystem='smbtorture',
        init_function='torture_rap_init',
-       deps='TORTURE_UTIL LIBCLI_SMB NDR_RAP',
-       internal_module=True
+       deps='TORTURE_UTIL LIBCLI_SMB NDR_RAP LIBCLI_RAP',
+       internal_module=True,
+       enabled=bld.PYTHON_BUILD_IS_ENABLED()
        )
 
 bld.SAMBA_MODULE('TORTURE_DFS',
@@ -70,14 +224,15 @@ bld.SAMBA_MODULE('TORTURE_DFS',
 
 
 bld.SAMBA_MODULE('TORTURE_AUTH',
-       source='auth/ntlmssp.c auth/pac.c',
+       source='auth/ntlmssp.c auth/pac.c auth/smbencrypt.c',
        autoproto='auth/proto.h',
        subsystem='smbtorture',
-       deps='LIBCLI_SMB gensec auth4 authkrb5 POPT_CREDENTIALS smbpasswd torture com_err gensec_ntlmssp',
+       deps='LIBCLI_SMB gensec auth4 authkrb5 popt POPT_CREDENTIALS smbpasswdparser torture com_err gensec_ntlmssp',
        internal_module=True
        )
 
 bld.RECURSE('local')
+bld.RECURSE('krb5')
 
 bld.SAMBA_MODULE('TORTURE_NBENCH',
        source='nbench/nbio.c nbench/nbench.c',
@@ -100,9 +255,9 @@ bld.SAMBA_MODULE('TORTURE_UNIX',
 
 
 bld.SAMBA_MODULE('TORTURE_LDAP',
-       source='ldap/common.c ldap/basic.c ldap/schema.c ldap/uptodatevector.c ldap/cldap.c ldap/cldapbench.c ldap/ldap_sort.c ldap/nested_search.c',
+       source='ldap/common.c ldap/basic.c ldap/schema.c ldap/uptodatevector.c ldap/cldap.c ldap/netlogon.c ldap/cldapbench.c ldap/ldap_sort.c ldap/nested_search.c',
        subsystem='smbtorture',
-       deps='cli-ldap LIBCLI_CLDAP samdb POPT_CREDENTIALS torture ldbsamba',
+       deps='cli-ldap cli_cldap samdb popt POPT_CREDENTIALS torture ldbsamba',
        internal_module=True,
        autoproto='ldap/proto.h',
        init_function='torture_ldap_init'
@@ -115,7 +270,8 @@ bld.SAMBA_MODULE('TORTURE_NBT',
        subsystem='smbtorture',
        init_function='torture_nbt_init',
        deps='LIBCLI_SMB cli-nbt LIBCLI_DGRAM LIBCLI_WREPL torture_rpc',
-       internal_module=True
+       internal_module=True,
+       enabled=bld.PYTHON_BUILD_IS_ENABLED()
        )
 
 
@@ -124,8 +280,9 @@ bld.SAMBA_MODULE('TORTURE_NET',
        autoproto='libnet/proto.h',
        subsystem='smbtorture',
        init_function='torture_net_init',
-       deps='samba-net POPT_CREDENTIALS torture_rpc PROVISION',
-       internal_module=True
+       deps='%s popt POPT_CREDENTIALS torture_rpc %s' % (provision, samba_net),
+       internal_module=True,
+       enabled=bld.PYTHON_BUILD_IS_ENABLED()
        )
 
 
@@ -134,37 +291,49 @@ bld.SAMBA_MODULE('TORTURE_NTP',
        autoproto='ntp/proto.h',
        subsystem='smbtorture',
        init_function='torture_ntp_init',
-       deps='POPT_CREDENTIALS torture_rpc',
-       internal_module=True
+       deps='popt POPT_CREDENTIALS torture_rpc',
+       internal_module=True,
+       enabled=bld.PYTHON_BUILD_IS_ENABLED()
        )
 
-TORTURE_MODULES = 'TORTURE_BASIC TORTURE_RAW torture_rpc TORTURE_RAP TORTURE_AUTH TORTURE_NBENCH TORTURE_UNIX TORTURE_LDAP TORTURE_NBT TORTURE_NET TORTURE_NTP torture_registry'
+bld.SAMBA_MODULE('TORTURE_VFS',
+       source='vfs/vfs.c vfs/fruit.c vfs/acl_xattr.c',
+       subsystem='smbtorture',
+       deps='LIBCLI_SMB POPT_CREDENTIALS TORTURE_UTIL smbclient-raw TORTURE_RAW',
+       internal_module=True,
+       autoproto='vfs/proto.h',
+       init_function='torture_vfs_init'
+       )
+
+TORTURE_MODULES = 'TORTURE_BASIC TORTURE_RAW torture_rpc TORTURE_RAP TORTURE_AUTH TORTURE_NBENCH TORTURE_UNIX TORTURE_LDAP TORTURE_NBT TORTURE_NET TORTURE_NTP torture_registry TORTURE_VFS'
 
 bld.SAMBA_SUBSYSTEM('torturemain',
                     source='smbtorture.c torture.c shell.c',
                     subsystem_name='smbtorture',
                     deps='torture popt POPT_SAMBA POPT_CREDENTIALS dcerpc LIBCLI_SMB SMBREADLINE ' + TORTURE_MODULES,
+                    enabled=bld.PYTHON_BUILD_IS_ENABLED()
                     )
 
 bld.SAMBA_BINARY('smbtorture',
                  source=[],
                  manpages='man/smbtorture.1',
-                 public_headers='smbtorture.h',
+                 private_headers='smbtorture.h',
                  deps='torturemain torture popt POPT_SAMBA POPT_CREDENTIALS dcerpc LIBCLI_SMB SMBREADLINE ' + TORTURE_MODULES,
-                 pyembed=True
+                 pyembed=True,
+                 enabled=bld.PYTHON_BUILD_IS_ENABLED()
                  )
 
 bld.SAMBA_BINARY('gentest',
        source='gentest.c',
        manpages='man/gentest.1',
-       deps='samba-hostconfig samba-util popt POPT_SAMBA POPT_CREDENTIALS LIBCLI_SMB LIBCLI_RAW'
+       deps='samba-hostconfig samba-util popt POPT_SAMBA POPT_CREDENTIALS LIBCLI_SMB smbclient-raw param_options'
        )
 
 
 bld.SAMBA_BINARY('masktest',
        source='masktest.c',
        manpages='man/masktest.1',
-       deps='samba-hostconfig samba-util popt POPT_SAMBA POPT_CREDENTIALS LIBCLI_SMB'
+       deps='samba-hostconfig samba-util popt POPT_SAMBA POPT_CREDENTIALS LIBCLI_SMB param_options'
        )
 
 
@@ -175,6 +344,15 @@ bld.SAMBA_BINARY('locktest',
        #cflags='--coverage',
        # GCOV='1',
        manpages='man/locktest.1',
-       deps='popt POPT_SAMBA POPT_CREDENTIALS samba-util LIBCLI_SMB samba-hostconfig',
+       deps='popt POPT_SAMBA POPT_CREDENTIALS samba-util LIBCLI_SMB samba-hostconfig param_options',
        )
 
+bld.SAMBA_MODULE('TORTURE_DSDB',
+       source="../../source4/dsdb/common/tests/dsdb.c",
+       autoproto='dsdb_proto.h',
+       subsystem='smbtorture',
+       init_function='torture_dsdb_init',
+       deps="TORTURE_UTIL samba-util",
+       internal_module=True,
+       enabled=bld.PYTHON_BUILD_IS_ENABLED()
+       )