diff options
-rw-r--r-- | source4/scripting/swig/torture/spoolss.py | 75 |
1 files changed, 65 insertions, 10 deletions
diff --git a/source4/scripting/swig/torture/spoolss.py b/source4/scripting/swig/torture/spoolss.py index 70450a9b12..a4fdbbb107 100644 --- a/source4/scripting/swig/torture/spoolss.py +++ b/source4/scripting/swig/torture/spoolss.py @@ -21,7 +21,7 @@ def ResizeBufferCall(fn, pipe, r): def test_OpenPrinterEx(pipe, printer): - print 'testing spoolss_OpenPrinterEx(%s)' % printer + print 'spoolss_OpenPrinterEx(%s)' % printer printername = '\\\\%s' % dcerpc.dcerpc_server_name(pipe) @@ -66,7 +66,7 @@ def test_GetPrinter(pipe, handle): for level in [0, 1, 2, 3, 4, 5, 6, 7]: - print 'test_GetPrinter(level = %d)' % level + print 'spoolss_GetPrinter(level = %d)' % level r['level'] = level r['buffer'] = None @@ -77,7 +77,7 @@ def test_GetPrinter(pipe, handle): def test_EnumForms(pipe, handle): - print 'testing spoolss_EnumForms' + print 'spoolss_EnumForms()' r = {} r['handle'] = handle @@ -102,7 +102,7 @@ def test_EnumForms(pipe, handle): def test_EnumPorts(pipe, handle): - print 'testing spoolss_EnumPorts' + print 'spoolss_EnumPorts()' r = {} r['handle'] = handle @@ -136,7 +136,7 @@ def test_GetForm(pipe, handle, formname): def test_SetForm(pipe, handle, form): - print 'testing spoolss_SetForm' + print 'spoolss_SetForm()' r = {} r['handle'] = handle @@ -156,7 +156,7 @@ def test_SetForm(pipe, handle, form): def test_AddForm(pipe, handle): - print 'testing spoolss_AddForm' + print 'spoolss_AddForm()' formname = '__testform__' @@ -197,7 +197,7 @@ def test_AddForm(pipe, handle): def test_EnumJobs(pipe, handle): - print 'testing spoolss_EnumJobs' + print 'spoolss_EnumJobs()' r = {} r['handle'] = handle @@ -232,7 +232,7 @@ def test_EnumJobs(pipe, handle): def test_EnumPrinterData(pipe, handle): - print 'test_EnumPrinterData' + print 'test_EnumPrinterData()' enum_index = 0 @@ -268,9 +268,42 @@ def test_EnumPrinterData(pipe, handle): enum_index += 1 +def test_SetPrinterDataEx(pipe, handle): + + valuename = '__printerdataextest__' + data = '12345' + + r = {} + r['handle'] = handle + r['key_name'] = 'DsSpooler' + r['value_name'] = valuename + r['type'] = 3 + r['buffer'] = data + r['buf_size'] = len(data) + + result = dcerpc.spoolss_SetPrinterDataEx(pipe, r) + + +def test_EnumPrinterDataEx(pipe, handle): + + r = {} + r['handle'] = handle + r['key_name'] = 'DsSpooler' + r['buf_size'] = 0 + + result = dcerpc.spoolss_EnumPrinterDataEx(pipe, r) + + if result['result'] == dcerpc.WERR_MORE_DATA: + r['buf_size'] = result['buf_size'] + + result = dcerpc.spoolss_EnumPrinterDataEx(pipe, r) + + # TODO: test spoolss_GetPrinterDataEx() + + def test_SetPrinterData(pipe, handle): - print 'testing spoolss_SetPrinterData' + print 'testing spoolss_SetPrinterData()' valuename = '__printerdatatest__' data = '12345' @@ -299,7 +332,7 @@ def test_SetPrinterData(pipe, handle): def test_EnumPrinters(pipe): - print 'testing spoolss_EnumPrinters' + print 'testing spoolss_EnumPrinters()' printer_names = None @@ -348,10 +381,31 @@ def test_EnumPrinters(pipe): test_AddForm(pipe, handle) test_EnumJobs(pipe, handle) test_EnumPrinterData(pipe, handle) + test_EnumPrinterDataEx(pipe, handle) test_SetPrinterData(pipe, handle) +# test_SetPrinterDataEx(pipe, handle) test_ClosePrinter(pipe, handle) +def test_EnumPrinterDrivers(pipe): + + print 'test spoolss_EnumPrinterDrivers()' + + for level in [1, 2, 3]: + + r = {} + r['server'] = None + r['environment'] = None + r['level'] = level + + result = ResizeBufferCall(dcerpc.spoolss_EnumPrinterDrivers, pipe, r) + + for driver in dcerpc.unmarshall_spoolss_DriverInfo_array( + result['buffer'], r['level'], result['count']): + + print driver + + def test_PrintServer(pipe): handle = test_OpenPrinterEx(pipe, None) @@ -370,4 +424,5 @@ def runtests(binding, domain, username, password): domain, username, password) test_EnumPrinters(pipe) + test_EnumPrinterDrivers(pipe) test_PrintServer(pipe) |