[SCM] Samba Shared Repository - branch master updated
Günther Deschner
gd at samba.org
Wed Jan 27 03:24:43 MST 2010
The branch, master has been updated
via 098fc8c... s4:torture: refactor querying of domain info out into test_QueryDomainInfo2_level()
via 0a33b20... s4:torture: create new test_SetDomainInfo_ntstatus()
via c1d157a... s4:torture: refactor setting of domain inf out into test_SetDomainInfo()
via 50a46cf... s4:torture: refactor setting account flags out into test_SetUserInfo_acct_flags()
from 899bd00... Fix bug #7067 - Linux asynchronous IO (aio) can cause smbd to fail to respond to a read or write.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 098fc8c09c64c9fa37ae70638e3b30340a7ae183
Author: Michael Adam <obnox at samba.org>
Date: Fri Jan 22 00:47:42 2010 +0100
s4:torture: refactor querying of domain info out into test_QueryDomainInfo2_level()
Used in several places.
(Note: The _level suffix in the function name is just because
test_QueryDomainInfo2() already exists as an overall test for all levels.)
Michael
Signed-off-by: Günther Deschner <gd at samba.org>
commit 0a33b20f70506d0a01b4c543ab57ca2488187ee9
Author: Michael Adam <obnox at samba.org>
Date: Fri Jan 22 00:46:19 2010 +0100
s4:torture: create new test_SetDomainInfo_ntstatus()
for checking for SetDomainInfo giving a desired return code.
Michael
Signed-off-by: Günther Deschner <gd at samba.org>
commit c1d157a48102c50c72a85b60fba5237436377ffd
Author: Michael Adam <obnox at samba.org>
Date: Fri Jan 22 00:21:29 2010 +0100
s4:torture: refactor setting of domain inf out into test_SetDomainInfo()
and use it in several places.
Michael
Signed-off-by: Günther Deschner <gd at samba.org>
commit 50a46cff76e33dc8828c49bf0665afeeb2b7c1eb
Author: Michael Adam <obnox at samba.org>
Date: Thu Jan 21 23:55:51 2010 +0100
s4:torture: refactor setting account flags out into test_SetUserInfo_acct_flags()
and use this in four places (enabling/disabling accounts).
Michael
Signed-off-by: Günther Deschner <gd at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source4/torture/rpc/samr.c | 383 +++++++++++++++++++-------------------------
1 files changed, 168 insertions(+), 215 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index c2b973e..4ab4a2c 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -3403,33 +3403,106 @@ static bool test_QueryUserInfo_badpwdcount(struct dcerpc_pipe *p,
return true;
}
-static bool test_reset_badpwdcount(struct dcerpc_pipe *p,
- struct torture_context *tctx,
- struct policy_handle *user_handle,
- uint32_t acct_flags,
- char **password)
+static bool test_SetUserInfo_acct_flags(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *user_handle,
+ uint32_t acct_flags)
{
struct samr_SetUserInfo r;
union samr_UserInfo user_info;
- torture_assert(tctx, test_SetUserPass(p, tctx, user_handle, password),
- "failed to set password");
-
- torture_comment(tctx, "Testing SetUserInfo level 16 (enable account)\n");
+ torture_comment(tctx, "Testing SetUserInfo level 16\n");
user_info.info16.acct_flags = acct_flags;
- user_info.info16.acct_flags &= ~ACB_DISABLED;
r.in.user_handle = user_handle;
r.in.level = 16;
r.in.info = &user_info;
torture_assert_ntstatus_ok(tctx, dcerpc_samr_SetUserInfo(p, tctx, &r),
- "failed to enable user");
+ "failed to set account flags");
+ return true;
+}
+
+static bool test_reset_badpwdcount(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *user_handle,
+ uint32_t acct_flags,
+ char **password)
+{
torture_assert(tctx, test_SetUserPass(p, tctx, user_handle, password),
"failed to set password");
+ torture_comment(tctx, "Testing SetUserInfo level 16 (enable account)\n");
+
+ torture_assert(tctx,
+ test_SetUserInfo_acct_flags(p, tctx, user_handle,
+ acct_flags & ~ACB_DISABLED),
+ "failed to enable user");
+
+ torture_assert(tctx, test_SetUserPass(p, tctx, user_handle, password),
+ "failed to set password");
+
+ return true;
+}
+
+static bool test_SetDomainInfo(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *domain_handle,
+ enum samr_DomainInfoClass level,
+ union samr_DomainInfo *info)
+{
+ struct samr_SetDomainInfo r;
+
+ r.in.domain_handle = domain_handle;
+ r.in.level = level;
+ r.in.info = info;
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_samr_SetDomainInfo(p, tctx, &r),
+ "failed to set domain info");
+
+ return true;
+}
+
+static bool test_SetDomainInfo_ntstatus(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *domain_handle,
+ enum samr_DomainInfoClass level,
+ union samr_DomainInfo *info,
+ NTSTATUS expected)
+{
+ struct samr_SetDomainInfo r;
+
+ r.in.domain_handle = domain_handle;
+ r.in.level = level;
+ r.in.info = info;
+
+ torture_assert_ntstatus_equal(tctx,
+ dcerpc_samr_SetDomainInfo(p, tctx, &r),
+ expected,
+ "");
+
+ return true;
+}
+
+static bool test_QueryDomainInfo2_level(struct dcerpc_pipe *p,
+ struct torture_context *tctx,
+ struct policy_handle *domain_handle,
+ enum samr_DomainInfoClass level,
+ union samr_DomainInfo **q_info)
+{
+ struct samr_QueryDomainInfo2 r;
+
+ r.in.domain_handle = domain_handle;
+ r.in.level = level;
+ r.out.info = q_info;
+
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
+ "failed to query domain info");
+
return true;
}
@@ -3465,36 +3538,20 @@ static bool test_Password_badpwdcount(struct dcerpc_pipe *p,
/* set policies */
info.info1 = *info1;
-
info.info1.password_history_length = password_history_length;
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainPasswordInformation;
- r.in.info = &info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- "failed to set domain info level 1");
- }
+ torture_assert(tctx,
+ test_SetDomainInfo(p, tctx, domain_handle,
+ DomainPasswordInformation, &info),
+ "failed to set password history length");
info.info12 = *info12;
-
info.info12.lockout_threshold = lockout_threshold;
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainLockoutInformation;
- r.in.info = &info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- "failed to set domain info level 12");
- }
+ torture_assert(tctx,
+ test_SetDomainInfo(p, tctx, domain_handle,
+ DomainLockoutInformation, &info),
+ "failed to set lockout threshold");
/* reset bad pwd count */
@@ -3503,26 +3560,16 @@ static bool test_Password_badpwdcount(struct dcerpc_pipe *p,
/* enable or disable account */
- {
- struct samr_SetUserInfo r;
- union samr_UserInfo user_info;
-
- torture_comment(tctx, "Testing SetUserInfo level 16 (%s account)\n",
- disable ? "disable" : "enable");
-
- user_info.info16.acct_flags = acct_flags;
- if (disable) {
- user_info.info16.acct_flags |= ACB_DISABLED;
- } else {
- user_info.info16.acct_flags &= ~ACB_DISABLED;
- }
-
- r.in.user_handle = user_handle;
- r.in.level = 16;
- r.in.info = &user_info;
-
- torture_assert_ntstatus_ok(tctx, dcerpc_samr_SetUserInfo(p, tctx, &r),
- "failed to enable user");
+ if (disable) {
+ torture_assert(tctx,
+ test_SetUserInfo_acct_flags(p, tctx, user_handle,
+ acct_flags | ACB_DISABLED),
+ "failed to disable user");
+ } else {
+ torture_assert(tctx,
+ test_SetUserInfo_acct_flags(p, tctx, user_handle,
+ acct_flags & ~ACB_DISABLED),
+ "failed to enable user");
}
@@ -3701,35 +3748,20 @@ static bool test_Password_badpwdcount_wrap(struct dcerpc_pipe *p,
/* backup old policies */
- {
- struct samr_QueryDomainInfo2 r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainPasswordInformation;
- r.out.info = &q_info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
- "failed to query domain info level 1");
-
- info1 = q_info->info1;
- }
-
- {
- struct samr_QueryDomainInfo2 r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainLockoutInformation;
- r.out.info = &q_info;
+ torture_assert(tctx,
+ test_QueryDomainInfo2_level(p, tctx, domain_handle,
+ DomainPasswordInformation, &q_info),
+ "failed to query domain info level 1");
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
- "failed to query domain info level 12");
+ info1 = q_info->info1;
+ _info1 = info1;
- info12 = q_info->info12;
- }
+ torture_assert(tctx,
+ test_QueryDomainInfo2_level(p, tctx, domain_handle,
+ DomainLockoutInformation, &q_info),
+ "failed to query domain info level 12");
- _info1 = info1;
+ info12 = q_info->info12;
_info12 = info12;
/* run tests */
@@ -3762,31 +3794,17 @@ static bool test_Password_badpwdcount_wrap(struct dcerpc_pipe *p,
s_info.info1 = info1;
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainPasswordInformation;
- r.in.info = &s_info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- "failed to set domain info level 1");
- }
+ torture_assert(tctx,
+ test_SetDomainInfo(p, tctx, domain_handle,
+ DomainPasswordInformation, &s_info),
+ "failed to set password information");
s_info.info12 = info12;
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainLockoutInformation;
- r.in.info = &s_info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- "failed to set domain info level 12");
- }
+ torture_assert(tctx,
+ test_SetDomainInfo(p, tctx, domain_handle,
+ DomainLockoutInformation, &s_info),
+ "failed to set lockout information");
return ret;
}
@@ -3847,69 +3865,41 @@ static bool test_Password_lockout(struct dcerpc_pipe *p,
torture_comment(tctx, "setting password history lenght.\n");
info.info1.password_history_length = password_history_length;
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainPasswordInformation;
- r.in.info = &info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- "failed to set domain info level 1");
- }
+ torture_assert(tctx,
+ test_SetDomainInfo(p, tctx, domain_handle,
+ DomainPasswordInformation, &info),
+ "failed to set password history length");
info.info12 = *info12;
-
info.info12.lockout_threshold = lockout_threshold;
/* set lockout duration < lockout window: should fail */
info.info12.lockout_duration = ~(lockout_seconds * delta_time_factor);
info.info12.lockout_window = ~((lockout_seconds + 1) * delta_time_factor);
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainLockoutInformation;
- r.in.info = &info;
-
- torture_assert_ntstatus_equal(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- NT_STATUS_INVALID_PARAMETER,
- "succeeded setting lockout duration < lockout window");
- }
+ torture_assert(tctx,
+ test_SetDomainInfo_ntstatus(p, tctx, domain_handle,
+ DomainLockoutInformation, &info,
+ NT_STATUS_INVALID_PARAMETER),
+ "setting lockout duration < lockout window gave unexpected result");
info.info12.lockout_duration = 0;
info.info12.lockout_window = 0;
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainLockoutInformation;
- r.in.info = &info;
+ torture_assert(tctx,
+ test_SetDomainInfo(p, tctx, domain_handle,
+ DomainLockoutInformation, &info),
+ "failed to set lockout window and duration to 0");
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- "failed to set lockout window and duration to 0");
- }
/* set lockout duration of 5 seconds */
info.info12.lockout_duration = ~(lockout_seconds * delta_time_factor);
info.info12.lockout_window = ~(lockout_seconds * delta_time_factor);
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainLockoutInformation;
- r.in.info = &info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- "failed to set domain info level 12");
- }
+ torture_assert(tctx,
+ test_SetDomainInfo(p, tctx, domain_handle,
+ DomainLockoutInformation, &info),
+ "failed to set lockout window and duration to 5 seconds");
/* reset bad pwd count */
@@ -3918,28 +3908,20 @@ static bool test_Password_lockout(struct dcerpc_pipe *p,
/* enable or disable account */
- {
- struct samr_SetUserInfo r;
- union samr_UserInfo user_info;
-
- torture_comment(tctx, "Testing SetUserInfo level 16 (%s account)\n",
- disable ? "disable" : "enable");
- user_info.info16.acct_flags = acct_flags;
- if (disable) {
- user_info.info16.acct_flags |= ACB_DISABLED;
- } else {
- user_info.info16.acct_flags &= ~ACB_DISABLED;
- }
-
- r.in.user_handle = user_handle;
- r.in.level = 16;
- r.in.info = &user_info;
-
- torture_assert_ntstatus_ok(tctx, dcerpc_samr_SetUserInfo(p, tctx, &r),
- "failed to enable user");
+ if (disable) {
+ torture_assert(tctx,
+ test_SetUserInfo_acct_flags(p, tctx, user_handle,
+ acct_flags | ACB_DISABLED),
+ "failed to disable user");
+ } else {
+ torture_assert(tctx,
+ test_SetUserInfo_acct_flags(p, tctx, user_handle,
+ acct_flags & ~ACB_DISABLED),
+ "failed to enable user");
}
+
/* test logon with right password */
if (!test_SamLogon_with_creds(tctx, np, machine_credentials,
@@ -4085,35 +4067,20 @@ static bool test_Password_lockout_wrap(struct dcerpc_pipe *p,
/* backup old policies */
- {
- struct samr_QueryDomainInfo2 r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainPasswordInformation;
- r.out.info = &q_info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
- "failed to query domain info level 1");
-
- info1 = q_info->info1;
- }
-
- {
- struct samr_QueryDomainInfo2 r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainLockoutInformation;
- r.out.info = &q_info;
+ torture_assert(tctx,
+ test_QueryDomainInfo2_level(p, tctx, domain_handle,
+ DomainPasswordInformation, &q_info),
+ "failed to query domain info level 1");
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_QueryDomainInfo2(p, tctx, &r),
- "failed to query domain info level 12");
+ info1 = q_info->info1;
+ _info1 = info1;
- info12 = q_info->info12;
- }
+ torture_assert(tctx,
+ test_QueryDomainInfo2_level(p, tctx, domain_handle,
+ DomainLockoutInformation, &q_info),
+ "failed to query domain info level 12");
- _info1 = info1;
+ info12 = q_info->info12;
_info12 = info12;
/* run tests */
@@ -4146,31 +4113,17 @@ static bool test_Password_lockout_wrap(struct dcerpc_pipe *p,
s_info.info1 = info1;
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainPasswordInformation;
- r.in.info = &s_info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- "failed to set domain info level 1");
- }
+ torture_assert(tctx,
+ test_SetDomainInfo(p, tctx, domain_handle,
+ DomainPasswordInformation, &s_info),
+ "failed to set password information");
s_info.info12 = info12;
- {
- struct samr_SetDomainInfo r;
-
- r.in.domain_handle = domain_handle;
- r.in.level = DomainLockoutInformation;
- r.in.info = &s_info;
-
- torture_assert_ntstatus_ok(tctx,
- dcerpc_samr_SetDomainInfo(p, tctx, &r),
- "failed to set domain info level 12");
- }
+ torture_assert(tctx,
+ test_SetDomainInfo(p, tctx, domain_handle,
--
Samba Shared Repository
More information about the samba-cvs
mailing list