1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-20 22:50:26 +03:00

torture: use torture_assert rather than return false in rpc.lsa

This will help ensure we always generate correct subunit failures.

Andrew Bartlett
This commit is contained in:
Andrew Bartlett 2012-09-24 08:59:10 +10:00
parent f0908c1dc6
commit a807a63f3d

View File

@ -530,11 +530,7 @@ static bool test_LookupNames2(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_LookupNames2_r(b, tctx, &r),
"LookupNames2 failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "LookupNames2 failed - %s\n",
nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result, "LookupNames2 failed");
if (check_result) {
torture_assert_int_equal(tctx, count, sids.count,
@ -594,11 +590,8 @@ static bool test_LookupNames3(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_LookupNames3_r(b, tctx, &r),
"LookupNames3 failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "LookupNames3 failed - %s\n",
nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result,
"LookupNames3 failed");
if (check_result) {
torture_assert_int_equal(tctx, count, sids.count,
@ -665,13 +658,10 @@ static bool test_LookupNames4(struct dcerpc_binding_handle *b,
return true;
}
torture_assert_ntstatus_ok(tctx,
r.out.result,
"LookupNames4 failed");
return false;
}
torture_assert_ntstatus_ok(tctx,
r.out.result,
"LookupNames4 failed");
if (check_result) {
torture_assert_int_equal(tctx, count, sids.count,
@ -743,11 +733,9 @@ static bool test_LookupNames4_fail(struct dcerpc_binding_handle *b,
}
}
torture_assert_ntstatus_equal(tctx,
r.out.result,
NT_STATUS_OK,
"LookupNames4 return value should be "
"ACCESS_DENIED");
torture_fail(tctx,
"LookupNames4 return value should be "
"ACCESS_DENIED or RPC_PROTSEQ_NOT_SUPPORTED");
return false;
}
@ -939,22 +927,18 @@ static bool test_LookupSids3_fail(struct dcerpc_binding_handle *b,
return true;
}
if (!NT_STATUS_IS_OK(r.out.result)) {
if (NT_STATUS_EQUAL(r.out.result, NT_STATUS_ACCESS_DENIED) ||
NT_STATUS_EQUAL(r.out.result, NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED)) {
torture_comment(tctx,
"LookupNames4 correctly returned with "
"result: %s\n",
nt_errstr(r.out.result));
return true;
}
if (NT_STATUS_EQUAL(r.out.result, NT_STATUS_ACCESS_DENIED) ||
NT_STATUS_EQUAL(r.out.result, NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED)) {
torture_comment(tctx,
"LookupNames4 correctly returned with "
"result: %s\n",
nt_errstr(r.out.result));
return true;
}
torture_assert_ntstatus_equal(tctx,
r.out.result,
NT_STATUS_OK,
"LookupSids3 return value should be "
"ACCESS_DENIED");
torture_fail(tctx,
"LookupSids3 return value should be "
"ACCESS_DENIED or RPC_PROTSEQ_NOT_SUPPORTED");
return false;
}
@ -1150,11 +1134,8 @@ static bool test_LookupPrivValue(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_LookupPrivValue_r(b, tctx, &r),
"LookupPrivValue failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "\nLookupPrivValue failed - %s\n",
nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result,
"LookupPrivValue failed");
return true;
}
@ -1173,11 +1154,7 @@ static bool test_LookupPrivName(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_LookupPrivName_r(b, tctx, &r),
"LookupPrivName failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "\nLookupPrivName failed - %s\n",
nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result, "LookupPrivName failed");
return true;
}
@ -1258,12 +1235,8 @@ static bool test_AddPrivilegesToAccount(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_AddPrivilegesToAccount_r(b, tctx, &r),
"AddPrivilegesToAccount failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "AddPrivilegesToAccount failed - %s\n",
nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result,
"AddPrivilegesToAccount failed");
return ret;
}
@ -1283,11 +1256,8 @@ static bool test_EnumPrivsAccount(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_EnumPrivsAccount_r(b, tctx, &r),
"EnumPrivsAccount failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "EnumPrivsAccount failed - %s\n",
nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result,
"EnumPrivsAccount failed");
if (privs && privs->count > 0) {
int i;
@ -1320,11 +1290,8 @@ static bool test_GetSystemAccessAccount(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_GetSystemAccessAccount_r(b, tctx, &r),
"GetSystemAccessAccount failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "GetSystemAccessAccount failed - %s\n",
nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result,
"GetSystemAccessAccount failed");
if (r.out.access_mask != NULL) {
torture_comment(tctx, "Rights:");
@ -1391,11 +1358,8 @@ static bool test_DeleteObject(struct dcerpc_binding_handle *b,
r.out.handle = handle;
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_DeleteObject_r(b, tctx, &r),
"DeleteObject failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "DeleteObject failed - %s\n",
nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result,
"DeleteObject failed");
return true;
}
@ -1429,15 +1393,11 @@ static bool test_CreateAccount(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_OpenAccount_r(b, tctx, &r_o),
"OpenAccount failed");
if (!NT_STATUS_IS_OK(r_o.out.result)) {
torture_comment(tctx, "OpenAccount failed - %s\n",
nt_errstr(r_o.out.result));
return false;
}
} else if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "CreateAccount failed - %s\n",
nt_errstr(r.out.result));
return false;
torture_assert_ntstatus_ok(tctx, r_o.out.result,
"OpenAccount failed");
} else {
torture_assert_ntstatus_ok(tctx, r.out.result,
"CreateAccount failed");
}
if (!test_Delete(b, tctx, &acct_handle)) {
@ -1466,10 +1426,8 @@ static bool test_DeleteTrustedDomain(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_OpenTrustedDomainByName_r(b, tctx, &r),
"OpenTrustedDomainByName failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "OpenTrustedDomainByName failed - %s\n", nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result,
"OpenTrustedDomainByName failed");
if (!test_Delete(b, tctx, &trustdom_handle)) {
return false;
@ -1494,10 +1452,8 @@ static bool test_DeleteTrustedDomainBySid(struct dcerpc_binding_handle *b,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_DeleteTrustedDomain_r(b, tctx, &r),
"DeleteTrustedDomain failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "DeleteTrustedDomain failed - %s\n", nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result,
"DeleteTrustedDomain failed");
return true;
}
@ -1507,7 +1463,6 @@ static bool test_CreateSecret(struct dcerpc_pipe *p,
struct torture_context *tctx,
struct policy_handle *handle)
{
NTSTATUS status;
struct lsa_CreateSecret r;
struct lsa_OpenSecret r2;
struct lsa_SetSecret r3;
@ -1552,10 +1507,8 @@ static bool test_CreateSecret(struct dcerpc_pipe *p,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_CreateSecret_r(b, tctx, &r),
"CreateSecret failed");
if (!NT_STATUS_IS_OK(r.out.result)) {
torture_comment(tctx, "CreateSecret failed - %s\n", nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r.out.result,
"CreateSecret failed");
r.in.handle = handle;
r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@ -1563,10 +1516,8 @@ static bool test_CreateSecret(struct dcerpc_pipe *p,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_CreateSecret_r(b, tctx, &r),
"CreateSecret failed");
if (!NT_STATUS_EQUAL(r.out.result, NT_STATUS_OBJECT_NAME_COLLISION)) {
torture_comment(tctx, "CreateSecret should have failed OBJECT_NAME_COLLISION - %s\n", nt_errstr(r.out.result));
return false;
}
torture_assert_ntstatus_equal(tctx, r.out.result, NT_STATUS_OBJECT_NAME_COLLISION,
"CreateSecret should have failed OBJECT_NAME_COLLISION");
r2.in.handle = handle;
r2.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@ -1577,16 +1528,11 @@ static bool test_CreateSecret(struct dcerpc_pipe *p,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_OpenSecret_r(b, tctx, &r2),
"OpenSecret failed");
if (!NT_STATUS_IS_OK(r2.out.result)) {
torture_comment(tctx, "OpenSecret failed - %s\n", nt_errstr(r2.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r2.out.result,
"OpenSecret failed");
status = dcerpc_fetch_session_key(p, &session_key);
if (!NT_STATUS_IS_OK(status)) {
torture_comment(tctx, "dcerpc_fetch_session_key failed - %s\n", nt_errstr(status));
return false;
}
torture_assert_ntstatus_ok(tctx, dcerpc_fetch_session_key(p, &session_key),
"dcerpc_fetch_session_key failed");
enc_key = sess_encrypt_string(secret1, &session_key);
@ -1601,10 +1547,8 @@ static bool test_CreateSecret(struct dcerpc_pipe *p,
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_SetSecret_r(b, tctx, &r3),
"SetSecret failed");
if (!NT_STATUS_IS_OK(r3.out.result)) {
torture_comment(tctx, "SetSecret failed - %s\n", nt_errstr(r3.out.result));
return false;
}
torture_assert_ntstatus_ok(tctx, r3.out.result,
"SetSecret failed");
r3.in.sec_handle = &sec_handle;
r3.in.new_val = &buf1;
@ -1619,11 +1563,9 @@ static bool test_CreateSecret(struct dcerpc_pipe *p,
torture_comment(tctx, "Testing SetSecret with broken key\n");
torture_assert_ntstatus_ok(tctx, dcerpc_lsa_SetSecret_r(b, tctx, &r3),
"SetSecret failed");
if (!NT_STATUS_EQUAL(r3.out.result, NT_STATUS_UNKNOWN_REVISION)) {
torture_comment(tctx, "SetSecret should have failed UNKNOWN_REVISION - %s\n", nt_errstr(r3.out.result));
ret = false;
}
"SetSecret failed");
torture_assert_ntstatus_equal(tctx, r3.out.result, NT_STATUS_UNKNOWN_REVISION,
"SetSecret should have failed UNKNOWN_REVISION");
data_blob_free(&enc_key);