The branch, master has been updated via 696972c832c selftest: Remove fips env variables from client env via ebd00fbdd05 selftest: Pass env variables to fips tests via a324fc01b4d s4:selftests: Pass env variables to fips tests via eabf9803ecf s3:selftests: Pass env variables to fips tests via 48289b6964d selftest: Add support for setting ENV variables in plantestsuite() via 3db299e586f selftest: Add support for setting ENV variables in plansmbtorture4testsuite() via 18976a9568b selftest: Re-format long lines in selftesthelpers.py from 7fb741b3b1a krb5_wrap: remove unused code
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 696972c832c98fefab8df85f3d81b900ecbf9453 Author: Andreas Schneider <a...@samba.org> Date: Tue Jul 27 14:15:06 2021 +0200 selftest: Remove fips env variables from client env Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Andreas Schneider <a...@cryptomilk.org> Autobuild-Date(master): Wed Jul 28 07:12:55 UTC 2021 on sn-devel-184 commit ebd00fbdd058ddfe44610d179b3f0d4fd5147df4 Author: Andreas Schneider <a...@samba.org> Date: Tue Jul 27 16:06:07 2021 +0200 selftest: Pass env variables to fips tests Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit a324fc01b4d19ac980b7f844a93c6456aa1c6d8f Author: Andreas Schneider <a...@samba.org> Date: Tue Jul 27 14:11:39 2021 +0200 s4:selftests: Pass env variables to fips tests Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit eabf9803ecfa078b9138484d9c9f41a4803e5a60 Author: Andreas Schneider <a...@samba.org> Date: Tue Jul 27 14:06:33 2021 +0200 s3:selftests: Pass env variables to fips tests Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 48289b6964d28e153fec885aceca02c6a9b436ef Author: Andreas Schneider <a...@samba.org> Date: Tue Jul 27 13:45:03 2021 +0200 selftest: Add support for setting ENV variables in plantestsuite() Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 3db299e586fd9464b6e1b145f29b10c8ae325d3a Author: Andreas Schneider <a...@samba.org> Date: Tue Jul 27 13:25:59 2021 +0200 selftest: Add support for setting ENV variables in plansmbtorture4testsuite() Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 18976a9568b23759060377d09304e9d7badb143a Author: Andreas Schneider <a...@samba.org> Date: Tue Jul 27 08:50:54 2021 +0200 selftest: Re-format long lines in selftesthelpers.py Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> ----------------------------------------------------------------------- Summary of changes: selftest/selftesthelpers.py | 42 +++++++++++++++++++++++++++++--------- selftest/target/Samba.pm | 4 ---- selftest/tests.py | 7 +++++-- source3/selftest/tests.py | 15 ++++++++++++-- source4/selftest/tests.py | 49 +++++++++++++++++++++++++++++++++++++++------ 5 files changed, 93 insertions(+), 24 deletions(-) Changeset truncated at 500 lines: diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index 3358374cbca..542737dbd10 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python3 +# # This script generates a list of testsuites that should be run as part of # the Samba 4 test suite. @@ -24,7 +25,8 @@ import sys def srcdir(): - return os.path.normpath(os.getenv("SRCDIR", os.path.join(os.path.dirname(os.path.abspath(__file__)), ".."))) + alternate_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..") + return os.path.normpath(os.getenv("SRCDIR", alternate_path)) def source4dir(): @@ -64,7 +66,7 @@ def valgrindify(cmdline): return valgrind + " " + cmdline -def plantestsuite(name, env, cmdline): +def plantestsuite(name, env, cmd, environ={}): """Plan a test suite. :param name: Testsuite name @@ -78,8 +80,18 @@ def plantestsuite(name, env, cmdline): fullname = "%s(%s)" % (name, env) print(fullname) print(env) - if isinstance(cmdline, list): - cmdline = " ".join(cmdline) + + cmdline = "" + if environ: + environ = dict(environ) + cmdline_env = ["%s=%s" % item for item in environ.items()] + cmdline = " ".join(cmdline_env) + " " + + if isinstance(cmd, list): + cmdline += " ".join(cmd) + else: + cmdline += cmd + if "$LISTOPT" in cmdline: raise AssertionError("test %s supports --list, but not --load-list" % name) print(cmdline + " 2>&1 " + " | " + add_prefix(name, env)) @@ -90,7 +102,8 @@ def add_prefix(prefix, env, support_list=False): listopt = "$LISTOPT " else: listopt = "" - return "%s %s/selftest/filter-subunit %s--fail-on-empty --prefix=\"%s.\" --suffix=\"(%s)\"" % (python, srcdir(), listopt, prefix, env) + return ("%s %s/selftest/filter-subunit %s--fail-on-empty --prefix=\"%s.\" --suffix=\"(%s)\"" % + (python, srcdir(), listopt, prefix, env)) def plantestsuite_loadlist(name, env, cmdline): @@ -108,7 +121,9 @@ def plantestsuite_loadlist(name, env, cmdline): raise AssertionError("loadlist test %s does not support not --list" % name) if "$LOADLIST" not in cmdline: raise AssertionError("loadlist test %s does not support --load-list" % name) - print(("%s | %s" % (cmdline.replace("$LOADLIST", ""), add_prefix(name, env, support_list))).replace("$LISTOPT", "--list ")) + print(("%s | %s" % + (cmdline.replace("$LOADLIST", ""), + add_prefix(name, env, support_list))).replace("$LISTOPT", "--list ")) print(cmdline.replace("$LISTOPT", "") + " 2>&1 " + " | " + add_prefix(name, env, False)) @@ -163,7 +178,10 @@ bbdir = os.path.join(srcdir(), "testprogs/blackbox") configuration = "--configfile=$SMB_CONF_PATH" smbtorture4 = binpath("smbtorture") -smbtorture4_testsuite_list = subprocess.Popen([smbtorture4, "--list-suites"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate("")[0].decode('utf8').splitlines() +smbtorture4_testsuite_list = subprocess.Popen( + [smbtorture4, "--list-suites"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE).communicate("")[0].decode('utf8').splitlines() smbtorture4_options = [ configuration, @@ -174,13 +192,17 @@ smbtorture4_options = [ ] + get_env_torture_options() -def plansmbtorture4testsuite(name, env, options, target, modname=None): +def plansmbtorture4testsuite(name, env, options, target, modname=None, environ={}): if modname is None: modname = "samba4.%s" % name if isinstance(options, list): options = " ".join(options) options = " ".join(smbtorture4_options + ["--target=%s" % target]) + " " + options - cmdline = "%s $LISTOPT $LOADLIST %s %s" % (valgrindify(smbtorture4), options, name) + cmdline = "" + if environ: + environ = dict(environ) + cmdline = ["%s=%s" % item for item in environ.items()] + cmdline += " %s $LISTOPT $LOADLIST %s %s" % (valgrindify(smbtorture4), options, name) plantestsuite_loadlist(modname, env, cmdline) diff --git a/selftest/target/Samba.pm b/selftest/target/Samba.pm index 8d6ca3eb2ee..10353008b88 100644 --- a/selftest/target/Samba.pm +++ b/selftest/target/Samba.pm @@ -936,10 +936,6 @@ my @exported_envvars = ( # resolv_wrapper "RESOLV_WRAPPER_CONF", "RESOLV_WRAPPER_HOSTS", - - # crypto libraries - "GNUTLS_FORCE_FIPS_MODE", - "OPENSSL_FORCE_FIPS_MODE", ); sub exported_envvars_str diff --git a/selftest/tests.py b/selftest/tests.py index 1f9d3f37a76..46fc8a802bb 100644 --- a/selftest/tests.py +++ b/selftest/tests.py @@ -94,8 +94,11 @@ planpythontestsuite( os.path.join(samba4srcdir, "..", "third_party", "waf")]) planpythontestsuite("fileserver", "samba.tests.smbd_fuzztest") planpythontestsuite("nt4_dc_smb1", "samba.tests.dcerpc.binding") -for env in [ 'ad_dc:local', 'ad_dc_fips:local' ]: - planpythontestsuite(env, "samba.tests.dcerpc.samr_change_password") +planpythontestsuite('ad_dc:local', "samba.tests.dcerpc.samr_change_password") +planpythontestsuite('ad_dc_fips:local', + "samba.tests.dcerpc.samr_change_password", + environ={'GNUTLS_FORCE_FIPS_MODE': '1', + 'OPENSSL_FORCE_FIPS_MODE': '1'}) def cmdline(script, *args): diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index a9745740118..faa201d4b79 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -1157,7 +1157,16 @@ for env in ['fileserver', 'simpleserver']: "$USERNAME", "$PASSWORD", "$SERVER", smbclient3, env]) -for env in ['ad_dc', 'ad_dc_fips', 'ad_member_fips']: +plantestsuite("samba3.blackbox.smbclient.kerberos", 'ad_dc', + [os.path.join(samba3srcdir, + "script/tests/test_smbclient_kerberos.sh"), + "alice", + "$REALM", + "Secret007", + "$SERVER", + smbclient3, + env]) +for env in ['ad_dc_fips', 'ad_member_fips']: plantestsuite("samba3.blackbox.smbclient.kerberos", env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_kerberos.sh"), @@ -1166,7 +1175,9 @@ for env in ['ad_dc', 'ad_dc_fips', 'ad_member_fips']: "Secret007", "$SERVER", smbclient3, - env]) + env], + environ={'GNUTLS_FORCE_FIPS_MODE': '1', + 'OPENSSL_FORCE_FIPS_MODE': '1'}) plantestsuite("samba3.blackbox.rpcclient_netsessenum", "ad_member", [os.path.join(samba3srcdir, diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 8ca8649bda3..4820af85a85 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -594,12 +594,43 @@ if have_gnutls_fips_mode_support: plantestsuite("samba4.blackbox.weak_crypto.client", "ad_dc", [os.path.join(bbdir, "test_weak_crypto.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', "$PREFIX/ad_dc"]) for env in ["ad_dc_fips", "ad_member_fips"]: - plantestsuite("samba4.blackbox.weak_crypto.server", env, [os.path.join(bbdir, "test_weak_crypto_server.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', "$PREFIX/ad_dc_fips", configuration]) - plantestsuite("samba4.blackbox.net_ads_fips", "ad_dc_fips:client", [os.path.join(bbdir, "test_net_ads_fips.sh"), '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD', '$PREFIX_ABS']) + plantestsuite("samba4.blackbox.weak_crypto.server", + env, + [os.path.join(bbdir, "test_weak_crypto_server.sh"), + '$SERVER', + '$USERNAME', + '$PASSWORD', + '$REALM', + '$DOMAIN', + "$PREFIX/ad_dc_fips", + configuration], + environ={'GNUTLS_FORCE_FIPS_MODE': '1', + 'OPENSSL_FORCE_FIPS_MODE': '1'}) + + plantestsuite("samba4.blackbox.net_ads_fips", + "ad_dc_fips:client", + [os.path.join(bbdir, "test_net_ads_fips.sh"), + '$DC_SERVER', + '$DC_USERNAME', + '$DC_PASSWORD', + '$PREFIX_ABS'], + environ={'GNUTLS_FORCE_FIPS_MODE': '1', + 'OPENSSL_FORCE_FIPS_MODE': '1'}) t = "--krb5auth=$DOMAIN/$DC_USERNAME%$DC_PASSWORD" - plantestsuite("samba3.wbinfo_simple.fips.%s" % t, "ad_member_fips:local", [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t]) - plantestsuite("samba4.wbinfo_name_lookup.fips", "ad_member_fips", [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_name_lookup.sh"), '$DOMAIN', '$REALM', '$DC_USERNAME']) + plantestsuite("samba3.wbinfo_simple.fips.%s" % t, + "ad_member_fips:local", + [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_simple.sh"), t], + environ={'GNUTLS_FORCE_FIPS_MODE': '1', + 'OPENSSL_FORCE_FIPS_MODE': '1'}) + plantestsuite("samba4.wbinfo_name_lookup.fips", + "ad_member_fips", + [os.path.join(srcdir(), "nsswitch/tests/test_wbinfo_name_lookup.sh"), + '$DOMAIN', + '$REALM', + '$DC_USERNAME'], + environ={'GNUTLS_FORCE_FIPS_MODE': '1', + 'OPENSSL_FORCE_FIPS_MODE': '1'}) plansmbtorture4testsuite('rpc.echo', "ad_dc_ntvfs", ['ncacn_np:$NETBIOSALIAS', '-U$DOMAIN/$USERNAME%$PASSWORD'], "samba4.rpc.echo against NetBIOS alias") @@ -754,8 +785,14 @@ def planoldpythontestsuite(env, module, name=None, extra_path=[], environ={}, ex plantestsuite_loadlist(name, env, args) if have_gnutls_fips_mode_support: - planoldpythontestsuite("ad_dc", "samba.tests.dcerpc.createtrustrelax", environ={'GNUTLS_FORCE_FIPS_MODE':'1'}) - planoldpythontestsuite("ad_dc_fips", "samba.tests.dcerpc.createtrustrelax", environ={'GNUTLS_FORCE_FIPS_MODE':'1'}) + planoldpythontestsuite("ad_dc", + "samba.tests.dcerpc.createtrustrelax", + environ={'GNUTLS_FORCE_FIPS_MODE': '1', + 'OPENSSL_FORCE_FIPS_MODE': '1'}) + planoldpythontestsuite("ad_dc_fips", + "samba.tests.dcerpc.createtrustrelax", + environ={'GNUTLS_FORCE_FIPS_MODE': '1', + 'OPENSSL_FORCE_FIPS_MODE': '1'}) # Run complex search expressions test once for each database backend. # Right now ad_dc has mdb and ad_dc_ntvfs has tdb -- Samba Shared Repository