The branch, master has been updated
       via  ec0aa8a... s4-smbtorture: more work on devicemode tests.
       via  0e95a6a... s4-smbtorture: explain failure conditions in printer 
device mode tests a little more.
       via  f2ecec3... s4-smbtorture: add 
--option=torture:spoolss_check_size=yes.
      from  299e5bc... s4-smbtorture: print more comments while running SD and 
DM tests in RPC-SPOOLSS-PRINTER.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit ec0aa8a5c92c634ca3264b65c987b2072875df5c
Author: Günther Deschner <g...@samba.org>
Date:   Fri Feb 19 15:25:42 2010 +0100

    s4-smbtorture: more work on devicemode tests.
    
    Guenther

commit 0e95a6a09cda6579be7d01c9e4c78f9f7f7cc54e
Author: Günther Deschner <g...@samba.org>
Date:   Fri Feb 19 14:27:31 2010 +0100

    s4-smbtorture: explain failure conditions in printer device mode tests a 
little more.
    
    Guenther

commit f2ecec3dcdafd63cd72d13019a998bf99539a9ba
Author: Günther Deschner <g...@samba.org>
Date:   Fri Feb 19 14:25:19 2010 +0100

    s4-smbtorture: add --option=torture:spoolss_check_size=yes.
    
    This disables the size calculation comparison by default.
    
    Guenther

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

Summary of changes:
 source4/torture/rpc/spoolss.c |  127 +++++++++++++++++++++++++++--------------
 1 files changed, 85 insertions(+), 42 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c
index 6cc6727..0a915a7 100644
--- a/source4/torture/rpc/spoolss.c
+++ b/source4/torture/rpc/spoolss.c
@@ -120,30 +120,36 @@ struct test_spoolss_context {
 #define DO_ROUND(size, n) (((size)+((n)-1)) & ~((n)-1))
 
 #define CHECK_NEEDED_SIZE_ENUM_LEVEL(fn, info, level, count, ic, needed, 
align) do { \
+       if (torture_setting_bool(tctx, "spoolss_check_size", false)) {\
        uint32_t size = ndr_size_##fn##_info(tctx, ic, level, count, info);\
        uint32_t round_size = DO_ROUND(size, align);\
        if (round_size != needed) {\
                torture_warning(tctx, __location__": "#fn" level %d (count: %d) 
got unexpected needed size: %d, we calculated: %d", level, count, needed, 
round_size);\
                CHECK_ALIGN(size, align);\
        }\
+       }\
 } while(0)
 
 #define CHECK_NEEDED_SIZE_ENUM(fn, info, count, ic, needed, align) do { \
+       if (torture_setting_bool(tctx, "spoolss_check_size", false)) {\
        uint32_t size = ndr_size_##fn##_info(tctx, ic, count, info);\
        uint32_t round_size = DO_ROUND(size, align);\
        if (round_size != needed) {\
                torture_warning(tctx, __location__": "#fn" (count: %d) got 
unexpected needed size: %d, we calculated: %d", count, needed, round_size);\
                CHECK_ALIGN(size, align);\
        }\
+       }\
 } while(0)
 
 #define CHECK_NEEDED_SIZE_LEVEL(fn, info, level, ic, needed, align) do { \
+       if (torture_setting_bool(tctx, "spoolss_check_size", false)) {\
        uint32_t size = ndr_size_##fn(info, level, ic, 0);\
        uint32_t round_size = DO_ROUND(size, align);\
        if (round_size != needed) {\
                torture_warning(tctx, __location__": "#fn" level %d got 
unexpected needed size: %d, we calculated: %d", level, needed, round_size);\
                CHECK_ALIGN(size, align);\
        }\
+       }\
 } while(0)
 
 static bool test_OpenPrinter_server(struct torture_context *tctx,
@@ -1658,7 +1664,8 @@ static bool test_PrinterInfo_SDs(struct torture_context 
*tctx,
 
        sd2 = info.info3.secdesc;
 
-       torture_assert(tctx, test_security_descriptor_equal(tctx, sd1, sd2), 
"");
+       torture_assert(tctx, test_security_descriptor_equal(tctx, sd1, sd2),
+               "SD level 2 != SD level 3");
 
 
        /* query level 2, set level 2, query level 2 */
@@ -1677,7 +1684,8 @@ static bool test_PrinterInfo_SDs(struct torture_context 
*tctx,
                sd1->type &= ~SEC_DESC_DACL_DEFAULTED;
        }
 
-       torture_assert(tctx, test_security_descriptor_equal(tctx, sd1, sd2), 
"");
+       torture_assert(tctx, test_security_descriptor_equal(tctx, sd1, sd2),
+               "SD level 2 != SD level 2 after SD has been set via level 2");
 
 
        /* query level 2, set level 3, query level 2 */
@@ -1692,8 +1700,8 @@ static bool test_PrinterInfo_SDs(struct torture_context 
*tctx,
 
        sd2 = info.info2.secdesc;
 
-       torture_assert(tctx, test_security_descriptor_equal(tctx, sd1, sd2), 
"");
-
+       torture_assert(tctx, test_security_descriptor_equal(tctx, sd1, sd2),
+               "SD level 2 != SD level 2 after SD has been set via level 3");
 
        /* set modified sd level 3, query level 2 */
 
@@ -1718,7 +1726,9 @@ static bool test_PrinterInfo_SDs(struct torture_context 
*tctx,
                sd1->type &= ~SEC_DESC_DACL_DEFAULTED;
        }
 
-       torture_assert(tctx, test_security_descriptor_equal(tctx, sd1, sd2), 
"");
+       torture_assert(tctx, test_security_descriptor_equal(tctx, sd1, sd2),
+               "modified SD level 2 != SD level 2 after SD has been set via 
level 3");
+
 
        return true;
 }
@@ -1910,82 +1920,113 @@ static bool test_PrinterInfo_DevModes(struct 
torture_context *tctx,
 
        devmode2 = info.info2.devmode;
 
-       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2), 
"");
+       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2),
+               "DM level 8 != DM level 2");
 
 
-       /* change formname upon open and see if it persists in getprinter calls 
*/
+       /* set devicemode level 8 and see if it persists */
 
-       devmode->formname = talloc_strdup(tctx, "A4");
+       devmode->copies = 93;
+       devmode->formname = talloc_strdup(tctx, "Legal");
 
-       torture_assert(tctx, call_OpenPrinterEx(tctx, p, name, devmode, 
&handle_devmode),
-               "failed to open printer handle");
+       torture_assert(tctx, test_devmode_set_level(tctx, p, handle, 8, 
devmode), "");
 
-       torture_assert(tctx, test_GetPrinter_level(tctx, p, &handle_devmode, 8, 
&info), "");
+       torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, 8, &info), 
"");
 
        devmode2 = info.info8.devmode;
 
-       if (strequal(devmode->devicename, devmode2->devicename)) {
-               torture_fail(tctx, "devicename is the same");
-       }
-
-       if (strequal(devmode->formname, devmode2->formname)) {
-               torture_fail(tctx, "formname is the same");
-       }
+       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2),
+               "modified DM level 8 != DM level 8 after DM has been set via 
level 8");
 
-       torture_assert(tctx, test_GetPrinter_level(tctx, p, &handle_devmode, 2, 
&info), "");
+       torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, 2, &info), 
"");
 
        devmode2 = info.info2.devmode;
 
-       if (strequal(devmode->devicename, devmode2->devicename)) {
-               torture_fail(tctx, "devicename is the same");
-       }
+       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2),
+               "modified DM level 8 != DM level 2");
 
-       if (strequal(devmode->formname, devmode2->formname)) {
-               torture_fail(tctx, "formname is the same");
-       }
 
-       test_ClosePrinter(tctx, p, &handle_devmode);
-
-
-       /* set devicemode level 8 and see if it persists */
+       /* set devicemode level 2 and see if it persists */
 
-       devmode->copies = 93;
-       devmode->formname = talloc_strdup(tctx, "Legal");
+       devmode->copies = 39;
+       devmode->formname = talloc_strdup(tctx, "Executive");
 
-       torture_assert(tctx, test_devmode_set_level(tctx, p, handle, 8, 
devmode), "");
+       torture_assert(tctx, test_devmode_set_level(tctx, p, handle, 2, 
devmode), "");
 
        torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, 8, &info), 
"");
 
        devmode2 = info.info8.devmode;
 
-       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2), 
"");
+       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2),
+               "modified DM level 8 != DM level 8 after DM has been set via 
level 2");
 
        torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, 2, &info), 
"");
 
        devmode2 = info.info2.devmode;
 
-       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2), 
"");
+       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2),
+               "modified DM level 8 != DM level 2");
 
 
-       /* set devicemode level 2 and see if it persists */
+       /* change formname upon open and see if it persists in getprinter calls 
*/
 
-       devmode->copies = 39;
-       devmode->formname = talloc_strdup(tctx, "Letter");
+       devmode->formname = talloc_strdup(tctx, "A4");
+       devmode->copies = 42;
 
-       torture_assert(tctx, test_devmode_set_level(tctx, p, handle, 8, 
devmode), "");
+       torture_assert(tctx, call_OpenPrinterEx(tctx, p, name, devmode, 
&handle_devmode),
+               "failed to open printer handle");
 
-       torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, 8, &info), 
"");
+       torture_assert(tctx, test_GetPrinter_level(tctx, p, &handle_devmode, 8, 
&info), "");
 
        devmode2 = info.info8.devmode;
 
-       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2), 
"");
+       if (strequal(devmode->devicename, devmode2->devicename)) {
+               torture_comment(tctx, "devicenames are the same\n");
+       } else {
+               torture_comment(tctx, "devicename passed in for open: %s\n", 
devmode->devicename);
+               torture_comment(tctx, "devicename after level 8 get: %s\n", 
devmode2->devicename);
+       }
 
-       torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, 2, &info), 
"");
+       if (strequal(devmode->formname, devmode2->formname)) {
+               torture_warning(tctx, "formname are the same\n");
+       } else {
+               torture_comment(tctx, "formname passed in for open: %s\n", 
devmode->formname);
+               torture_comment(tctx, "formname after level 8 get: %s\n", 
devmode2->formname);
+       }
+
+       if (devmode->copies == devmode2->copies) {
+               torture_warning(tctx, "copies are the same\n");
+       } else {
+               torture_comment(tctx, "copies passed in for open: %d\n", 
devmode->copies);
+               torture_comment(tctx, "copies after level 8 get: %d\n", 
devmode2->copies);
+       }
+
+       torture_assert(tctx, test_GetPrinter_level(tctx, p, &handle_devmode, 2, 
&info), "");
 
        devmode2 = info.info2.devmode;
 
-       torture_assert(tctx, test_devicemode_equal(tctx, devmode, devmode2), 
"");
+       if (strequal(devmode->devicename, devmode2->devicename)) {
+               torture_comment(tctx, "devicenames are the same\n");
+       } else {
+               torture_comment(tctx, "devicename passed in for open: %s\n", 
devmode->devicename);
+               torture_comment(tctx, "devicename after level 2 get: %s\n", 
devmode2->devicename);
+       }
 
+       if (strequal(devmode->formname, devmode2->formname)) {
+               torture_warning(tctx, "formname is the same\n");
+       } else {
+               torture_comment(tctx, "formname passed in for open: %s\n", 
devmode->formname);
+               torture_comment(tctx, "formname after level 2 get: %s\n", 
devmode2->formname);
+       }
+
+       if (devmode->copies == devmode2->copies) {
+               torture_warning(tctx, "copies are the same\n");
+       } else {
+               torture_comment(tctx, "copies passed in for open: %d\n", 
devmode->copies);
+               torture_comment(tctx, "copies after level 2 get: %d\n", 
devmode2->copies);
+       }
+
+       test_ClosePrinter(tctx, p, &handle_devmode);
 
        return true;
 }
@@ -4318,6 +4359,8 @@ bool test_printer_keys(struct torture_context *tctx,
        const char **key_array = NULL;
        int i;
 
+       torture_comment(tctx, "\nTesting Printer Keys\n");
+
        torture_assert(tctx, test_EnumPrinterKey(tctx, p, handle, "", 
&key_array),
                "failed to call test_EnumPrinterKey");
 


-- 
Samba Shared Repository

Reply via email to