From 06cbf05e8b964d353d0ca505ade7b018f93c8465 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 15 Mar 2010 14:11:44 +0100 Subject: s4-smbtorture: when cross checking enumdata{ex} make sure to have at least one entry. Guenther --- source4/torture/rpc/spoolss.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'source4/torture') diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c index b12e42e71d..3f675a8826 100644 --- a/source4/torture/rpc/spoolss.c +++ b/source4/torture/rpc/spoolss.c @@ -3149,6 +3149,14 @@ static bool test_EnumPrinterDataEx(struct torture_context *tctx, return true; } +static bool test_SetPrinterData(struct torture_context *tctx, + struct dcerpc_pipe *p, + struct policy_handle *handle, + const char *value_name, + enum winreg_Type type, + uint8_t *data, + uint32_t offered); + static bool test_EnumPrinterData_consistency(struct torture_context *tctx, struct dcerpc_pipe *p, struct policy_handle *handle) @@ -3160,8 +3168,19 @@ static bool test_EnumPrinterData_consistency(struct torture_context *tctx, uint32_t value_offered, data_offered; WERROR result; + enum winreg_Type type; + DATA_BLOB blob; + torture_comment(tctx, "Testing EnumPrinterData vs EnumPrinterDataEx consistency\n"); + torture_assert(tctx, + reg_string_to_val(tctx, lp_iconv_convenience(tctx->lp_ctx), + "REG_SZ", "torture_data", &type, &blob), ""); + + torture_assert(tctx, + test_SetPrinterData(tctx, p, handle, "torture_value", type, blob.data, blob.length), + "SetPrinterData failed"); + torture_assert(tctx, test_EnumPrinterDataEx(tctx, p, handle, "PrinterDriverData", &count, &info), "failed to call EnumPrinterDataEx"); @@ -3226,6 +3245,8 @@ static bool test_EnumPrinterData_consistency(struct torture_context *tctx, torture_assert_mem_equal(tctx, data, info[i].data->data, info[i].data_length, "data mismatch"); } + torture_comment(tctx, "EnumPrinterData vs EnumPrinterDataEx consistency test succeeded\n\n"); + return true; } -- cgit