[SCM] Samba Shared Repository - branch v4-5-test updated

Stefan Metzmacher metze at samba.org
Thu Aug 11 09:02:26 UTC 2016


The branch, v4-5-test has been updated
       via  4f41b69 selftest/flapping: add some samba3.blackbox.smbclient_s3 tests
       via  4c452a7 selftest: Move repl_schema test to a distinct OID prefix
       via  fdbefe5 s4:dsdb/repl_meta_data: Add more info on which DN we failed to find an attid on
       via  1b01340 s4:dsdb/repl: let dsdb_replicated_objects_convert() change remote to local attid for linked attributes
       via  bfb5258 s4:dsdb/repl: set working_schema->resolving_in_progress during schema creation
       via  f7cf3c7 s4:dsdb/schema: move messages for unknown attids to higher debug levels during resolving
       via  67b678f s4:dsdb/schema: split out a dsdb_attribute_drsuapi_remote_to_local() function
       via  9f3ff9e s4:dsdb/schema: don't update the in memory schema->prefixmap without reloading the schema!
       via  e895b77 s4:dsdb/schema: avoid an implicit prefix map creation in lookup functions
       via  5902a36 s4:dsdb/objectclass_attrs: call dsdb_attribute_from_ldb() without a prefixmap
       via  6143e5e s4:dsdb/repl: make sure the working_schema prefix map is populated with the remote prefix map
       via  d5fd8de s4:dsdb/schema: make dsdb_schema_pfm_add_entry() public and more useful
       via  2c2a837 s4:dsdb/schema: Remove unused old schema from memory
       via  c84842a s4:dsdb/repl: Improve memory handling in replicated schema code
       via  137a40b s4:dsdb/schema: don't treat an older remote schema as SCHEMA_MISMATCH
       via  118b76c s4:dsdb/schema: store struct dsdb_schema_info instead of a hexstring
       via  5925277 s4:dsdb/repl: avoid recursion after fetching schema changes.
       via  adf2ca1 s4:dsdb/schema: don't change schema->schema_info on originating schema changes.
       via  252a0ca s4: repl: Ensure all error paths in dreplsrv_op_pull_source_get_changes_trigger() are protected with tevent returns.
       via  8c8588b selftest: Merge alternate error codes into backupkey from backupkey_heimdal
       via  315abf8 torture/backupkey: Allow WERR_INVALID_ACCESS, WERR_INVALID_PARAM or WERR_INVALID_DATA
       via  732b5a7 tests:blackbox: let samba_dnsupdate.py provide more details
       via  f29471f script/autobuild.py: check for AUTOBUILD_SKIP_SAMBA_O3 environment variable
       via  f3e8789 tests:samba_tool: make use of assertCmdFail() in gpo.py
       via  cbc6ba0 tests:samba_tool: pass stdout and stderr to assertCmdSuccess()
       via  76958a6 samba-tool/ldapcmp: ignore differences of whenChanged
      from  3e25b21 VERSION: Bump version up to 4.5.0rc3...

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-5-test


- Log -----------------------------------------------------------------
commit 4f41b6927a7fc59b80912895b04e78eb48caa055
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Aug 6 10:33:49 2016 +0200

    selftest/flapping: add some samba3.blackbox.smbclient_s3 tests
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Thu Aug 11 04:42:30 CEST 2016 on sn-devel-144
    
    (cherry picked from commit c064357428799ebb9c8ac5e9bf3a081bdad45072)
    
    Autobuild-User(v4-5-test): Stefan Metzmacher <metze at samba.org>
    Autobuild-Date(v4-5-test): Thu Aug 11 11:00:45 CEST 2016 on sn-devel-144

commit 4c452a77abdb2dca6d3fb30c664fb42c0557594d
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Aug 2 15:45:18 2016 +1200

    selftest: Move repl_schema test to a distinct OID prefix
    
    We also take the chance to make it clearer that the number
    being passed in should be unique.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit 3ce5ad1e6ca25fb91f0a0dcd7e389713913a35b0)

commit fdbefe5d28bc1b6a0da67e01ab6f6701e248128e
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Aug 2 14:28:12 2016 +1200

    s4:dsdb/repl_meta_data: Add more info on which DN we failed to find an attid on
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 108697402c9e39511f9ea1b1e21cae9322586f6b)

commit 1b01340aa074e6e24853db5dcd88325fc7b8b468
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 09:10:48 2016 +0200

    s4:dsdb/repl: let dsdb_replicated_objects_convert() change remote to local attid for linked attributes
    
    We already do that for objects in dsdb_convert_object_ex().
    
    We need to be consistent and do the same for linked attributes.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 111c5fd83fa3d0f2e1ae3af0767d8717edab484a)

commit bfb52588c242eebbc70701d8fc737606d6d8355e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 12:11:53 2016 +0200

    s4:dsdb/repl: set working_schema->resolving_in_progress during schema creation
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit cff6111d2fe5b3999447eaa870c5ddee158226aa)

commit f7cf3c753f479ea388e2c07af51a1ad13b69d49a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 09:10:13 2016 +0200

    s4:dsdb/schema: move messages for unknown attids to higher debug levels during resolving
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 6bc007a9143a57525732792bb1fcb934fcb2c91c)

commit 67b678f336178db7a08222b81477febcd0a89669
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 09:10:13 2016 +0200

    s4:dsdb/schema: split out a dsdb_attribute_drsuapi_remote_to_local() function
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 5ee6f9371570f968122c6eb1bceeb9bb0518bb4c)

commit 9f3ff9e7a1b13a649ca7401ed836530e5bca6a40
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 11:22:13 2016 +0200

    s4:dsdb/schema: don't update the in memory schema->prefixmap without reloading the schema!
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 2e6860df7149559df84ed3995ed36332ccb0f649)

commit e895b779d6f20047d325a88530801d246bbb9f6c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 11:11:20 2016 +0200

    s4:dsdb/schema: avoid an implicit prefix map creation in lookup functions
    
    dsdb_create_prefix_mapping() should be the only place that calls
    dsdb_schema_pfm_make_attid().
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit b755ec74e17e9a5ed746af0a2716effe3176965a)

commit 5902a362b394cdae894173c898aee019177e39f1
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 13:02:21 2016 +0200

    s4:dsdb/objectclass_attrs: call dsdb_attribute_from_ldb() without a prefixmap
    
    We may not have a prefix mapping for the new attribute definition,
    it will be added later.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit fa580f255ca0878b99946cda3f95913ff37f6d54)

commit 6143e5ec2b90b3508617e9595913070f9a83e72f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 11:07:18 2016 +0200

    s4:dsdb/repl: make sure the working_schema prefix map is populated with the remote prefix map
    
    We should create the working_schema prefix map before we try to
    resolve the schema. This allows getting the same mapping (if there's not already
    a conflict) and allows us to remove the implicit prefix mapping creation
    in the prefix mapping lookup functions.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit edeb577a59ea88d2a22559ffb8cbe994ea28f3f1)

commit d5fd8de0d28abdf02bea6047ca0be98452d455fe
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 11:00:02 2016 +0200

    s4:dsdb/schema: make dsdb_schema_pfm_add_entry() public and more useful
    
    We allow a hint for the id from the remote prefix map.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12128
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit f905ddc104bb130a63e714d16b6da41bc92d6864)

commit 2c2a837f03339fd12f731efc033397fcffaba394
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Aug 4 15:25:52 2016 +1200

    s4:dsdb/schema: Remove unused old schema from memory
    
    This avoids confusion when reading the talloc dump from a ldb context that has
    been the target of replication, as the dsdb_schema_copy_shallow() memory was
    still around, if unused.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12115
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit 29caafaf2888b25408fcafdb9767a003a910c1d7)

commit c84842ab197b39e599b958701a2c26cd7380ce88
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Aug 4 15:20:27 2016 +1200

    s4:dsdb/repl: Improve memory handling in replicated schema code
    
    This attempts to make it clear what memory is short term and what memory is long term
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12115
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit c533b60ceb761b609e78dfe270930cb99fdac848)

commit 137a40b0a90b5e1f57d6cc5f50767be110a6a5a6
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Aug 4 11:00:34 2016 +0200

    s4:dsdb/schema: don't treat an older remote schema as SCHEMA_MISMATCH
    
    It's perfectly valid to replicate from a partner with an older schema
    version, otherwise schema changes would block any other replication
    until every dc in the forest has the schema changes.
    
    The avoids an endless loop trying to get schema in sync with the partner.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12115
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 0a1627de6d7c70f2462a4d4db717ea50c8aefc2f)

commit 118b76c83f8751c4698bfcdceed6c4e65fb56b9c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Aug 4 10:03:14 2016 +0200

    s4:dsdb/schema: store struct dsdb_schema_info instead of a hexstring
    
    This will simplify the schema checking in future.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12115
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 386dbc428b447bbdf9c500191273658b92b13f7a)

commit 5925277b4048dd696836e27cf19d9427ef5e81d2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Aug 5 11:05:37 2016 +0200

    s4:dsdb/repl: avoid recursion after fetching schema changes.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12115
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit ab63866e258c1afbe60663f2a36bea58e5e80d53)

commit adf2ca1ec56dbf611f8302be65e438a83d4b5958
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Aug 4 23:04:32 2016 +0200

    s4:dsdb/schema: don't change schema->schema_info on originating schema changes.
    
    The next reload will take care of it.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12114
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 7143aed4e428f52bf1381b38a27412fd198060ab)

commit 252a0cad7aa1b1b29074b3beb05d18adb8f68704
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Aug 4 11:09:21 2016 -0700

    s4: repl: Ensure all error paths in dreplsrv_op_pull_source_get_changes_trigger() are protected with tevent returns.
    
    Otherwise dreplsrv_op_pull_source_get_changes_trigger() could infinitely recurse.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Sat Aug  6 01:24:05 CEST 2016 on sn-devel-144
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12115
    
    (cherry picked from commit 1ddd01dd21d5db9440dd382190e203c1e756fa3a)

commit 8c8588b8324836b516a416e7cfd33699fe0798a8
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Aug 2 13:20:46 2016 +1200

    selftest: Merge alternate error codes into backupkey from backupkey_heimdal
    
    This is from cea4a4b9b22c78f9736e2290d302a88644db4031 and
    613d085a63ee554084cb99d2150921dd108f6b77
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12107
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    
    Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
    Autobuild-Date(master): Wed Aug  3 21:43:21 CEST 2016 on sn-devel-144
    
    (cherry picked from commit 065dcc8a45fa77b00355b61a8f25d046c9d349cf)

commit 315abf8f106b6576fa78bb9e65878d69e9604551
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Aug 2 13:16:35 2016 +1200

    torture/backupkey: Allow WERR_INVALID_ACCESS, WERR_INVALID_PARAM or WERR_INVALID_DATA
    
    The use of the wrong key can still create structures that parse as a SID,
    therefore we can sometimes get an unusual error, which becomes a flapping test
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12107
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit 664bde19bf1db1b3740621cdf3f46f9bfd0e8452)

commit 732b5a783f6bf998dcdc9e1d7f782830018adf45
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Aug 2 18:38:33 2016 +0200

    tests:blackbox: let samba_dnsupdate.py provide more details
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    (cherry picked from commit dcdef0082a190dd9ed0b365c9103429a3a75adc3)

commit f29471f8121dda055ea88dace9ef0748ec16e46c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 1 16:48:53 2016 +0200

    script/autobuild.py: check for AUTOBUILD_SKIP_SAMBA_O3 environment variable
    
    We need to skip the samba-o3 target on older systems like sn-devel-104.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    (cherry picked from commit 4370870957ffeaaf2c7891e8f39e4043b4881b1b)

commit f3e878905c6ca84727d05b27e28913f904fd1316
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Aug 2 12:35:38 2016 +0200

    tests:samba_tool: make use of assertCmdFail() in gpo.py
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    (cherry picked from commit 62b7e73d4007401f52792bc74768dfd8c1472274)

commit cbc6ba0bf61c54b471ddb0809f15a238deb3d6c9
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Aug 2 12:33:34 2016 +0200

    tests:samba_tool: pass stdout and stderr to assertCmdSuccess()
    
    This allows us to generate better assert messages and give the
    developer some ideas why the command wasn't able to run.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    (cherry picked from commit fed029a624b24e9e0b3124e1b4e0810d32a95f75)

commit 76958a6966a3fcd13c66f483e2b5828b8a344417
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Aug 8 12:53:26 2016 +0200

    samba-tool/ldapcmp: ignore differences of whenChanged
    
    This is implicitly replicated, but may diverge on updates of non-replicated
    attributes.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12129
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    
    Autobuild-User(master): Ralph Böhme <slow at samba.org>
    Autobuild-Date(master): Mon Aug  8 17:34:24 CEST 2016 on sn-devel-144
    
    (cherry picked from commit a0e60e96aa38407ded8d63650dcf8f39304c958a)

-----------------------------------------------------------------------

Summary of changes:
 python/samba/netcmd/ldapcmp.py                     |   2 +-
 python/samba/tests/blackbox/samba_dnsupdate.py     |   8 +-
 python/samba/tests/samba_tool/base.py              |   5 +-
 python/samba/tests/samba_tool/fsmo.py              |   2 +-
 python/samba/tests/samba_tool/gpo.py               |  16 +--
 python/samba/tests/samba_tool/group.py             |  10 +-
 python/samba/tests/samba_tool/ntacl.py             |  24 ++---
 python/samba/tests/samba_tool/processes.py         |   4 +-
 python/samba/tests/samba_tool/rodc.py              |  14 +--
 python/samba/tests/samba_tool/sites.py             |   4 +-
 python/samba/tests/samba_tool/timecmd.py           |   2 +-
 python/samba/tests/samba_tool/user.py              |  32 +++---
 .../tests/samba_tool/user_check_password_script.py |   8 +-
 script/autobuild.py                                |   3 +
 selftest/flapping                                  |   2 +
 source4/dsdb/repl/drepl_out_helpers.c              |  39 +++++--
 source4/dsdb/repl/drepl_service.h                  |   7 --
 source4/dsdb/repl/replicated_objects.c             | 114 +++++++++++++++++++--
 source4/dsdb/samdb/ldb_modules/objectclass_attrs.c |  16 ++-
 source4/dsdb/samdb/ldb_modules/repl_meta_data.c    |   6 +-
 source4/dsdb/samdb/ldb_modules/schema_util.c       |  38 +++----
 source4/dsdb/samdb/samdb.h                         |   2 +-
 source4/dsdb/schema/schema.h                       |  10 +-
 source4/dsdb/schema/schema_info_attr.c             |  36 +++++--
 source4/dsdb/schema/schema_init.c                  |  54 ++++++----
 source4/dsdb/schema/schema_prefixmap.c             |  54 +++++++---
 source4/dsdb/schema/schema_set.c                   |  12 +++
 source4/dsdb/schema/schema_syntax.c                |  97 +++++++++++++-----
 source4/libnet/libnet_vampire.c                    |   7 +-
 source4/setup/schema_samba4.ldif                   |   2 +
 source4/torture/drs/python/fsmo.py                 |   2 +-
 source4/torture/drs/python/repl_schema.py          |  26 ++---
 source4/torture/drs/unit/prefixmap_tests.c         | 106 ++++++++++---------
 source4/torture/drs/unit/schemainfo_tests.c        |  83 +++++++++++++--
 source4/torture/rpc/backupkey.c                    |  10 +-
 source4/torture/rpc/backupkey_heimdal.c            |   5 +-
 36 files changed, 604 insertions(+), 258 deletions(-)


Changeset truncated at 500 lines:

diff --git a/python/samba/netcmd/ldapcmp.py b/python/samba/netcmd/ldapcmp.py
index 96b94f2..cb02de2 100644
--- a/python/samba/netcmd/ldapcmp.py
+++ b/python/samba/netcmd/ldapcmp.py
@@ -438,7 +438,7 @@ class LDAPObject(object):
                 "uSNChanged",
                 "uSNCreated",
                 "uSNLastObjRem",
-                # "whenChanged", # This is implicitly replicated
+                "whenChanged", # This is implicitly replicated, but may diverge on updates of non-replicated attributes
         ]
         self.ignore_attributes = self.non_replicated_attributes
         self.ignore_attributes += ["msExchServer1HighestUSN"]
diff --git a/python/samba/tests/blackbox/samba_dnsupdate.py b/python/samba/tests/blackbox/samba_dnsupdate.py
index 8cf367f..ee8ae26 100644
--- a/python/samba/tests/blackbox/samba_dnsupdate.py
+++ b/python/samba/tests/blackbox/samba_dnsupdate.py
@@ -44,14 +44,14 @@ class SambaDnsUpdateTests(samba.tests.BlackboxTestCase):
 
         try:
             out = self.check_output("samba_dnsupdate --verbose --use-nsupdate --current-ip=10.0.0.1")
-        except samba.tests.BlackboxProcessError:
-            self.fail("Error calling samba_dnsupdate")
+        except samba.tests.BlackboxProcessError as e:
+            self.fail("Error calling samba_dnsupdate: %s" % e)
 
         self.assertTrue("No DNS updates needed" in out, out)
         try:
             out = self.check_output("samba_dnsupdate --verbose --use-samba-tool --rpc-server-ip=%s" % self.server_ip)
-        except samba.tests.BlackboxProcessError:
-            self.fail("Error calling samba_dnsupdate")
+        except samba.tests.BlackboxProcessError as e:
+            self.fail("Error calling samba_dnsupdate: %s" % e)
 
         self.assertTrue(" DNS updates and" in out, out)
         self.assertTrue(" DNS deletes needed" in out, out)
diff --git a/python/samba/tests/samba_tool/base.py b/python/samba/tests/samba_tool/base.py
index de6cf18..8f00534 100644
--- a/python/samba/tests/samba_tool/base.py
+++ b/python/samba/tests/samba_tool/base.py
@@ -81,8 +81,9 @@ class SambaToolCmdTest(samba.tests.BlackboxTestCase):
         result = cmd._run("samba-tool %s %s" % (name, sub), *args)
         return (result, cmd.outf.getvalue(), cmd.errf.getvalue())
 
-    def assertCmdSuccess(self, val, msg=""):
-        self.assertIsNone(val, msg)
+    def assertCmdSuccess(self, exit, out, err, msg=""):
+        self.assertIsNone(exit, msg="exit[%s] stdout[%s] stderr[%s]: %s" % (
+                          exit, out, err, msg))
 
     def assertCmdFail(self, val, msg=""):
         self.assertIsNotNone(val, msg)
diff --git a/python/samba/tests/samba_tool/fsmo.py b/python/samba/tests/samba_tool/fsmo.py
index 207aa17..c985830 100644
--- a/python/samba/tests/samba_tool/fsmo.py
+++ b/python/samba/tests/samba_tool/fsmo.py
@@ -25,7 +25,7 @@ class FsmoCmdTestCase(SambaToolCmdTest):
         """Run fsmo show to see if it errors"""
         (result, out, err) = self.runsubcmd("fsmo", "show")
 
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(err,"","Shouldn't be any error messages")
 
         # Check that the output is sensible
diff --git a/python/samba/tests/samba_tool/gpo.py b/python/samba/tests/samba_tool/gpo.py
index e20a977..6297e1a 100644
--- a/python/samba/tests/samba_tool/gpo.py
+++ b/python/samba/tests/samba_tool/gpo.py
@@ -30,33 +30,33 @@ class GpoCmdTestCase(SambaToolCmdTest):
     def test_gpo_list(self):
         """Run gpo list against the server and make sure it looks accurate"""
         (result, out, err) = self.runsubcmd("gpo", "listall", "-H", "ldap://%s" % os.environ["SERVER"])
-        self.assertCmdSuccess(result, "Ensuring gpo listall ran successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring gpo listall ran successfully")
 
     def test_fetchfail(self):
         """Run against a non-existent GPO, and make sure it fails (this hard-coded UUID is very unlikely to exist"""
         (result, out, err) = self.runsubcmd("gpo", "fetch", "c25cac17-a02a-4151-835d-fae17446ee43", "-H", "ldap://%s" % os.environ["SERVER"])
-        self.assertEquals(result, -1, "check for result code")
+        self.assertCmdFail(result, "check for result code")
 
     def test_fetch(self):
         """Run against a real GPO, and make sure it passes"""
         (result, out, err) = self.runsubcmd("gpo", "fetch", self.gpo_guid, "-H", "ldap://%s" % os.environ["SERVER"], "--tmpdir", self.tempdir)
-        self.assertCmdSuccess(result, "Ensuring gpo fetched successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring gpo fetched successfully")
         shutil.rmtree(os.path.join(self.tempdir, "policy"))
 
     def test_show(self):
         """Show a real GPO, and make sure it passes"""
         (result, out, err) = self.runsubcmd("gpo", "show", self.gpo_guid, "-H", "ldap://%s" % os.environ["SERVER"])
-        self.assertCmdSuccess(result, "Ensuring gpo fetched successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring gpo fetched successfully")
 
     def test_show_as_admin(self):
         """Show a real GPO, and make sure it passes"""
         (result, out, err) = self.runsubcmd("gpo", "show", self.gpo_guid, "-H", "ldap://%s" % os.environ["SERVER"], "-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"]))
-        self.assertCmdSuccess(result, "Ensuring gpo fetched successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring gpo fetched successfully")
 
     def test_aclcheck(self):
         """Check all the GPOs on the remote server have correct ACLs"""
         (result, out, err) = self.runsubcmd("gpo", "aclcheck", "-H", "ldap://%s" % os.environ["SERVER"], "-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"]))
-        self.assertCmdSuccess(result, "Ensuring gpo checked successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring gpo checked successfully")
 
     def setUp(self):
         """set up a temporary GPO to work with"""
@@ -66,7 +66,7 @@ class GpoCmdTestCase(SambaToolCmdTest):
                                             "-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"]),
                                             "--tmpdir", self.tempdir)
         shutil.rmtree(os.path.join(self.tempdir, "policy"))
-        self.assertCmdSuccess(result, "Ensuring gpo created successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring gpo created successfully")
         try:
             self.gpo_guid = "{%s}" % out.split("{")[1].split("}")[0]
         except IndexError:
@@ -75,5 +75,5 @@ class GpoCmdTestCase(SambaToolCmdTest):
     def tearDown(self):
         """remove the temporary GPO to work with"""
         (result, out, err) = self.runsubcmd("gpo", "del", self.gpo_guid, "-H", "ldap://%s" % os.environ["SERVER"], "-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"]))
-        self.assertCmdSuccess(result, "Ensuring gpo deleted successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring gpo deleted successfully")
         super(GpoCmdTestCase, self).tearDown()
diff --git a/python/samba/tests/samba_tool/group.py b/python/samba/tests/samba_tool/group.py
index 2c0c46e..09ba59d 100644
--- a/python/samba/tests/samba_tool/group.py
+++ b/python/samba/tests/samba_tool/group.py
@@ -43,7 +43,7 @@ class GroupCmdTestCase(SambaToolCmdTest):
         for group in self.groups:
             (result, out, err) = self._create_group(group)
 
-            self.assertCmdSuccess(result)
+            self.assertCmdSuccess(result, out, err)
             self.assertEquals(err, "", "There shouldn't be any error message")
             self.assertIn("Added group %s" % group["name"], out)
 
@@ -73,7 +73,7 @@ class GroupCmdTestCase(SambaToolCmdTest):
         # try to delete all the groups we just added
         for group in self.groups:
             (result, out, err) = self.runsubcmd("group", "delete", group["name"])
-            self.assertCmdSuccess(result,
+            self.assertCmdSuccess(result, out, err,
                                   "Failed to delete group '%s'" % group["name"])
             found = self._find_group(group["name"])
             self.assertIsNone(found,
@@ -87,7 +87,7 @@ class GroupCmdTestCase(SambaToolCmdTest):
                                                  "-U%s%%%s" % (os.environ["DC_USERNAME"],
                                                  os.environ["DC_PASSWORD"]))
 
-            self.assertCmdSuccess(result)
+            self.assertCmdSuccess(result, out, err)
             self.assertEquals(err,"","There shouldn't be any error message")
             self.assertIn("Added group %s" % group["name"], out)
 
@@ -102,7 +102,7 @@ class GroupCmdTestCase(SambaToolCmdTest):
                                             "-H", "ldap://%s" % os.environ["DC_SERVER"],
                                             "-U%s%%%s" % (os.environ["DC_USERNAME"],
                                                           os.environ["DC_PASSWORD"]))
-        self.assertCmdSuccess(result, "Error running list")
+        self.assertCmdSuccess(result, out, err, "Error running list")
 
         search_filter = "(objectClass=group)"
 
@@ -123,7 +123,7 @@ class GroupCmdTestCase(SambaToolCmdTest):
                                             "-H", "ldap://%s" % os.environ["DC_SERVER"],
                                             "-U%s%%%s" % (os.environ["DC_USERNAME"],
                                                           os.environ["DC_PASSWORD"]))
-        self.assertCmdSuccess(result, "Error running listmembers")
+        self.assertCmdSuccess(result, out, err, "Error running listmembers")
 
         search_filter = "(|(primaryGroupID=513)(memberOf=CN=Domain Users,CN=Users,%s))" % self.samdb.domain_dn()
 
diff --git a/python/samba/tests/samba_tool/ntacl.py b/python/samba/tests/samba_tool/ntacl.py
index 2a329fe..c01d5ac 100644
--- a/python/samba/tests/samba_tool/ntacl.py
+++ b/python/samba/tests/samba_tool/ntacl.py
@@ -31,7 +31,7 @@ class NtACLCmdSysvolTestCase(SambaToolCmdTest):
     def test_ntvfs(self):
         (result, out, err) =  self.runsubcmd("ntacl", "sysvolreset",
                                              "--use-ntvfs")
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(out,"","Shouldn't be any output messages")
         self.assertIn("Please note that POSIX permissions have NOT been changed, only the stored NT ACL", err)
 
@@ -39,19 +39,19 @@ class NtACLCmdSysvolTestCase(SambaToolCmdTest):
         (result, out, err) =  self.runsubcmd("ntacl", "sysvolreset",
                                              "--use-s3fs")
 
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(err,"","Shouldn't be any error messages")
         self.assertEquals(out,"","Shouldn't be any output messages")
 
     def test_ntvfs_check(self):
         (result, out, err) =  self.runsubcmd("ntacl", "sysvolreset",
                                              "--use-ntvfs")
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(out,"","Shouldn't be any output messages")
         self.assertIn("Please note that POSIX permissions have NOT been changed, only the stored NT ACL", err)
         # Now check they were set correctly
         (result, out, err) =  self.runsubcmd("ntacl", "sysvolcheck")
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(err,"","Shouldn't be any error messages")
         self.assertEquals(out,"","Shouldn't be any output messages")
 
@@ -59,13 +59,13 @@ class NtACLCmdSysvolTestCase(SambaToolCmdTest):
         (result, out, err) =  self.runsubcmd("ntacl", "sysvolreset",
                                              "--use-s3fs")
 
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(err,"","Shouldn't be any error messages")
         self.assertEquals(out,"","Shouldn't be any output messages")
 
         # Now check they were set correctly
         (result, out, err) =  self.runsubcmd("ntacl", "sysvolcheck")
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(err,"","Shouldn't be any error messages")
         self.assertEquals(out,"","Shouldn't be any output messages")
 
@@ -82,7 +82,7 @@ class NtACLCmdGetSetTestCase(SambaToolCmdTest):
 
         (result, out, err) =  self.runsubcmd("ntacl", "set", self.acl, tempf,
                                              "--use-ntvfs")
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(out,"","Shouldn't be any output messages")
         self.assertIn("Please note that POSIX permissions have NOT been changed, only the stored NT ACL", err)
 
@@ -94,7 +94,7 @@ class NtACLCmdGetSetTestCase(SambaToolCmdTest):
         (result, out, err) =  self.runsubcmd("ntacl", "set", self.acl, tempf,
                                              "--use-s3fs")
 
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(err,"","Shouldn't be any error messages")
         self.assertEquals(out,"","Shouldn't be any output messages")
 
@@ -105,14 +105,14 @@ class NtACLCmdGetSetTestCase(SambaToolCmdTest):
 
         (result, out, err) =  self.runsubcmd("ntacl", "set", self.acl, tempf,
                                              "--use-ntvfs")
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(out,"","Shouldn't be any output messages")
         self.assertIn("Please note that POSIX permissions have NOT been changed, only the stored NT ACL", err)
 
         # Now check they were set correctly
         (result, out, err) =  self.runsubcmd("ntacl",  "get", tempf,
                                              "--use-ntvfs", "--as-sddl")
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(err,"","Shouldn't be any error messages")
         self.assertEquals(self.acl+"\n", out, "Output should be the ACL")
 
@@ -123,13 +123,13 @@ class NtACLCmdGetSetTestCase(SambaToolCmdTest):
 
         (result, out, err) =  self.runsubcmd("ntacl", "set", self.acl, tempf,
                                              "--use-s3fs")
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(out,"","Shouldn't be any output messages")
         self.assertEquals(err,"","Shouldn't be any error messages")
 
         # Now check they were set correctly
         (result, out, err) =  self.runsubcmd("ntacl",  "get", tempf,
                                              "--use-s3fs", "--as-sddl")
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
         self.assertEquals(err,"","Shouldn't be any error messages")
         self.assertEquals(self.acl+"\n", out,"Output should be the ACL")
diff --git a/python/samba/tests/samba_tool/processes.py b/python/samba/tests/samba_tool/processes.py
index 91a5266..5b8f502 100644
--- a/python/samba/tests/samba_tool/processes.py
+++ b/python/samba/tests/samba_tool/processes.py
@@ -27,9 +27,9 @@ class ProcessCmdTestCase(SambaToolCmdTest):
     def test_name(self):
         """Run processes command"""
         (result, out, err) = self.runcmd("processes", "--name", "samba")
-        self.assertCmdSuccess(result, "Ensuring processes ran successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring processes ran successfully")
 
     def test_all(self):
         """Run processes command"""
         (result, out, err) = self.runcmd("processes")
-        self.assertCmdSuccess(result, "Ensuring processes ran successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring processes ran successfully")
diff --git a/python/samba/tests/samba_tool/rodc.py b/python/samba/tests/samba_tool/rodc.py
index 798bc17..4851a53 100644
--- a/python/samba/tests/samba_tool/rodc.py
+++ b/python/samba/tests/samba_tool/rodc.py
@@ -66,26 +66,26 @@ class RodcCmdTestCase(SambaToolCmdTest):
     def test_single_by_account_name(self):
         (result, out, err) = self.runsubcmd("rodc", "preload", "sambatool1",
                                             "--server", os.environ["DC_SERVER"])
-        self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully")
+        self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully")
         self.assertEqual(out, "Replicating DN CN=sambatool1,CN=Users,%s\n" % self.base_dn)
         self.assertEqual(err, "")
 
     def test_single_by_dn(self):
         (result, out, err) = self.runsubcmd("rodc", "preload", "cn=sambatool2,cn=users,%s" % self.base_dn,
                                             "--server", os.environ["DC_SERVER"])
-        self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully")
+        self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully")
         self.assertEqual(out, "Replicating DN CN=sambatool2,CN=Users,%s\n" % self.base_dn)
 
     def test_multi_by_account_name(self):
         (result, out, err) = self.runsubcmd("rodc", "preload", "sambatool1", "sambatool2",
                                             "--server", os.environ["DC_SERVER"])
-        self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully")
+        self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully")
         self.assertEqual(out, "Replicating DN CN=sambatool1,CN=Users,%s\nReplicating DN CN=sambatool2,CN=Users,%s\n" % (self.base_dn, self.base_dn))
 
     def test_multi_by_dn(self):
         (result, out, err) = self.runsubcmd("rodc", "preload", "cn=sambatool3,cn=users,%s" % self.base_dn, "cn=sambatool4,cn=users,%s" % self.base_dn,
                                             "--server", os.environ["DC_SERVER"])
-        self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully")
+        self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully")
         self.assertEqual(out, "Replicating DN CN=sambatool3,CN=Users,%s\nReplicating DN CN=sambatool4,CN=Users,%s\n" % (self.base_dn, self.base_dn))
 
     def test_multi_in_file(self):
@@ -93,7 +93,7 @@ class RodcCmdTestCase(SambaToolCmdTest):
         open(tempf, 'w').write("sambatool1\nsambatool2")
         (result, out, err) = self.runsubcmd("rodc", "preload", "--file", tempf,
                                             "--server", os.environ["DC_SERVER"])
-        self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully")
+        self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully")
         self.assertEqual(out, "Replicating DN CN=sambatool1,CN=Users,%s\nReplicating DN CN=sambatool2,CN=Users,%s\n" % (self.base_dn, self.base_dn))
         os.unlink(tempf)
 
@@ -103,7 +103,7 @@ class RodcCmdTestCase(SambaToolCmdTest):
                                             "nonexistentuser2",
                                             "--server", os.environ["DC_SERVER"],
                                             "--ignore-errors")
-        self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully")
+        self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully")
         self.assertEqual(out, "Replicating DN CN=sambatool5,CN=Users,%s\n" % self.base_dn)
 
     def test_multi_with_missing_name_failure(self):
@@ -118,7 +118,7 @@ class RodcCmdTestCase(SambaToolCmdTest):
                                             "sambatool6", "sambatool5",
                                             "--server", os.environ["DC_SERVER"],
                                             "--ignore-errors")
-        self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully")
+        self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully")
         self.assertEqual(out, "Replicating DN CN=sambatool6,CN=Users,%s\nReplicating DN CN=sambatool5,CN=Users,%s\n" % (self.base_dn, self.base_dn))
 
     def test_multi_without_group_failure(self):
diff --git a/python/samba/tests/samba_tool/sites.py b/python/samba/tests/samba_tool/sites.py
index ee28109..8f96bba 100644
--- a/python/samba/tests/samba_tool/sites.py
+++ b/python/samba/tests/samba_tool/sites.py
@@ -44,7 +44,7 @@ class SitesCmdTestCase(BaseSitesCmdTestCase):
 
         result, out, err = self.runsubcmd("sites", "create", sitename,
                                           "-H", self.dburl, self.creds_string)
-        self.assertCmdSuccess(result)
+        self.assertCmdSuccess(result, out, err)
 
         dnsites = ldb.Dn(self.samdb, "CN=Sites,%s" % self.config_dn)
         dnsite = ldb.Dn(self.samdb, "CN=%s,%s" % (sitename, dnsites))
@@ -89,7 +89,7 @@ class SitesSubnetCmdTestCase(BaseSitesCmdTestCase):
                                               cidr, sitename,
                                               "-H", self.dburl,
                                               self.creds_string)
-            self.assertCmdSuccess(result)
+            self.assertCmdSuccess(result, out, err)
 
             ret = self.samdb.search(base=self.config_dn,
                                     scope=ldb.SCOPE_SUBTREE,
diff --git a/python/samba/tests/samba_tool/timecmd.py b/python/samba/tests/samba_tool/timecmd.py
index 000f0f2..310f861 100644
--- a/python/samba/tests/samba_tool/timecmd.py
+++ b/python/samba/tests/samba_tool/timecmd.py
@@ -25,7 +25,7 @@ class TimeCmdTestCase(SambaToolCmdTest):
     def test_timeget(self):
         """Run time against the server and make sure it looks accurate"""
         (result, out, err) = self.runcmd("time", os.environ["SERVER"])
-        self.assertCmdSuccess(result, "Ensuring time ran successfully")
+        self.assertCmdSuccess(result, out, err, "Ensuring time ran successfully")
 
         timefmt = strptime(out, "%a %b %d %H:%M:%S %Y %Z\n")
         servertime = int(mktime(timefmt))
diff --git a/python/samba/tests/samba_tool/user.py b/python/samba/tests/samba_tool/user.py
index 91e45c3..d2eb0e6 100644
--- a/python/samba/tests/samba_tool/user.py
+++ b/python/samba/tests/samba_tool/user.py
@@ -51,7 +51,7 @@ class UserCmdTestCase(SambaToolCmdTest):
         for user in self.users:
             (result, out, err) = user["createUserFn"](user)
 
-            self.assertCmdSuccess(result)
+            self.assertCmdSuccess(result, out, err)
             self.assertEquals(err,"","Shouldn't be any error messages")
             self.assertIn("User '%s' created successfully" % user["name"], out)
 
@@ -76,7 +76,7 @@ class UserCmdTestCase(SambaToolCmdTest):
         # try to delete all the 4 users we just added
         for user in self.users:
             (result, out, err) = self.runsubcmd("user", "delete", user["name"])
-            self.assertCmdSuccess(result, "Can we delete users")
+            self.assertCmdSuccess(result, out, err, "Can we delete users")
             found = self._find_user(user["name"])
             self.assertIsNone(found)
 
@@ -93,7 +93,7 @@ class UserCmdTestCase(SambaToolCmdTest):
                                                  "-H", "ldap://%s" % os.environ["DC_SERVER"],
                                                  "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"]))
 
-            self.assertCmdSuccess(result)
+            self.assertCmdSuccess(result, out, err)
             self.assertEquals(err,"","Shouldn't be any error messages")
             self.assertIn("User '%s' created successfully" % user["name"], out)
 
@@ -193,7 +193,7 @@ class UserCmdTestCase(SambaToolCmdTest):
                                                 "--newpassword=%s" % newpasswd,
                                                 "-H", "ldap://%s" % os.environ["DC_SERVER"],
                                                 "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"]))
-            # self.assertCmdSuccess(result, "Ensure setpassword runs")
+            self.assertCmdSuccess(result, out, err, "Ensure setpassword runs")
             self.assertEquals(err,"","setpassword with url")
             self.assertMatch(out, "Changed password OK", "setpassword with url")
 
@@ -202,7 +202,7 @@ class UserCmdTestCase(SambaToolCmdTest):
                                             "--cache-ldb-initialize",
                                             "--attributes=%s" % attributes,
                                             "--decrypt-samba-gpg")
-        self.assertCmdSuccess(result, "Ensure syncpasswords --cache-ldb-initialize runs")
+        self.assertCmdSuccess(result, out, err, "Ensure syncpasswords --cache-ldb-initialize runs")
         self.assertEqual(err,"","getpassword without url")
         cache_attrs = {
             "objectClass": { "value": "userSyncPasswords" },
@@ -220,7 +220,7 @@ class UserCmdTestCase(SambaToolCmdTest):
                 "syncpasswords --cache-ldb-initialize: %s: %s out[%s]" % (a, v, out))
 
         (result, out, err) = self.runsubcmd("user", "syncpasswords", "--no-wait")
-        self.assertCmdSuccess(result, "Ensure syncpasswords --no-wait runs")
+        self.assertCmdSuccess(result, out, err, "Ensure syncpasswords --no-wait runs")
         self.assertEqual(err,"","syncpasswords --no-wait")
         self.assertMatch(out, "dirsync_loop(): results 0",
             "syncpasswords --no-wait: 'dirsync_loop(): results 0': out[%s]" % (out))
@@ -241,12 +241,12 @@ class UserCmdTestCase(SambaToolCmdTest):
             (result, out, err) = self.runsubcmd("user", "setpassword",
                                                 user["name"],
                                                 "--newpassword=%s" % newpasswd)
-            self.assertCmdSuccess(result, "Ensure setpassword runs")
+            self.assertCmdSuccess(result, out, err, "Ensure setpassword runs")
             self.assertEquals(err,"","setpassword without url")
             self.assertMatch(out, "Changed password OK", "setpassword without url")
 
             (result, out, err) = self.runsubcmd("user", "syncpasswords", "--no-wait")
-            self.assertCmdSuccess(result, "Ensure syncpasswords --no-wait runs")
+            self.assertCmdSuccess(result, out, err, "Ensure syncpasswords --no-wait runs")
             self.assertEqual(err,"","syncpasswords --no-wait")
             self.assertMatch(out, "dirsync_loop(): results 0",
                 "syncpasswords --no-wait: 'dirsync_loop(): results 0': out[%s]" % (out))
@@ -272,7 +272,7 @@ class UserCmdTestCase(SambaToolCmdTest):
                                                 user["name"],
                                                 "--attributes=%s" % attributes,
                                                 "--decrypt-samba-gpg")
-            self.assertCmdSuccess(result, "Ensure getpassword runs")
+            self.assertCmdSuccess(result, out, err, "Ensure getpassword runs")
             self.assertEqual(err,"","getpassword without url")
             self.assertMatch(out, "Got password OK", "getpassword without url")
             self.assertMatch(out, "sAMAccountName: %s" % (user["name"]),
@@ -298,7 +298,7 @@ class UserCmdTestCase(SambaToolCmdTest):
                                                 "--must-change-at-next-login",
                                                 "-H", "ldap://%s" % os.environ["DC_SERVER"],
                                                 "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"]))
-            # self.assertCmdSuccess(result, "Ensure setpassword runs")
+            self.assertCmdSuccess(result, out, err, "Ensure setpassword runs")
             self.assertEquals(err,"","setpassword with forced change")
             self.assertMatch(out, "Changed password OK", "setpassword with forced change")
 
@@ -313,7 +313,7 @@ class UserCmdTestCase(SambaToolCmdTest):
                                                 "--days=2",
                                                 "-H", "ldap://%s" % os.environ["DC_SERVER"],
                                                 "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"]))
-            self.assertCmdSuccess(result, "Can we run setexpiry with names")
+            self.assertCmdSuccess(result, out, err, "Can we run setexpiry with names")
             self.assertIn("Expiry for user '%s' set to 2 days." % user["name"], out)
 
         for user in self.users:
@@ -333,7 +333,7 @@ class UserCmdTestCase(SambaToolCmdTest):
                                                 "--days=4",
                                                 "-H", "ldap://%s" % os.environ["DC_SERVER"],
                                                 "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"]))
-        self.assertCmdSuccess(result, "Can we run setexpiry with a filter")
+        self.assertCmdSuccess(result, out, err, "Can we run setexpiry with a filter")
 
         for user in self.users:
             found = self._find_user(user["name"])
@@ -350,7 +350,7 @@ class UserCmdTestCase(SambaToolCmdTest):


-- 
Samba Shared Repository



More information about the samba-cvs mailing list