mirror of
https://github.com/samba-team/samba.git
synced 2025-08-04 08:22:08 +03:00
s4-pyrpc: convert rpc_talloc.py test to unittest framework
This fits in better with our test framework Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org>
This commit is contained in:
@ -1,56 +1,70 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# test generated python code from pidl
|
# test generated python code from pidl
|
||||||
|
# Andrew Tridgell August 2010
|
||||||
|
#
|
||||||
|
# to run this test, use one of these:
|
||||||
|
#
|
||||||
|
# python -m testtools.run samba.tests.dcerpc.rpc_talloc
|
||||||
|
#
|
||||||
|
# or if you have trial installed (from twisted), use
|
||||||
|
#
|
||||||
|
# trial samba.tests.dcerpc.rpc_talloc
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
sys.path.insert(0, "bin/python")
|
sys.path.insert(0, "bin/python")
|
||||||
|
|
||||||
import samba
|
import samba
|
||||||
|
import samba.tests
|
||||||
from samba.dcerpc import drsuapi
|
from samba.dcerpc import drsuapi
|
||||||
|
|
||||||
samba.talloc_enable_null_tracking()
|
samba.talloc_enable_null_tracking()
|
||||||
initial_blocks = samba.talloc_total_blocks(None)
|
|
||||||
|
|
||||||
def check_blocks(object, num_expected):
|
class TallocTests(samba.tests.TestCase):
|
||||||
|
'''test talloc behaviour of pidl generated python code'''
|
||||||
|
|
||||||
|
|
||||||
|
def check_blocks(self, object, num_expected):
|
||||||
|
'''check that the number of allocated blocks is correct'''
|
||||||
nblocks = samba.talloc_total_blocks(object)
|
nblocks = samba.talloc_total_blocks(object)
|
||||||
if object is None:
|
if object is None:
|
||||||
nblocks -= initial_blocks
|
nblocks -= self.initial_blocks
|
||||||
if nblocks != num_expected:
|
self.assertEquals(nblocks, num_expected)
|
||||||
raise Exception("Expected %u blocks in %s - got %u" % (num_expected, str(object), nblocks))
|
|
||||||
|
|
||||||
check_blocks(None, 0)
|
|
||||||
|
|
||||||
def get_rodc_partial_attribute_set():
|
def get_rodc_partial_attribute_set(self):
|
||||||
'''get a list of attributes for RODC replication'''
|
'''get a list of attributes for RODC replication'''
|
||||||
partial_attribute_set = drsuapi.DsPartialAttributeSet()
|
partial_attribute_set = drsuapi.DsPartialAttributeSet()
|
||||||
|
|
||||||
# we expect one block for the object, and one for the structure
|
# we expect one block for the object, and one for the structure
|
||||||
check_blocks(partial_attribute_set, 2)
|
self.check_blocks(partial_attribute_set, 2)
|
||||||
|
|
||||||
attids = [ 1, 2, 3]
|
attids = [ 1, 2, 3]
|
||||||
partial_attribute_set.version = 1
|
partial_attribute_set.version = 1
|
||||||
partial_attribute_set.attids = attids
|
partial_attribute_set.attids = attids
|
||||||
partial_attribute_set.num_attids = len(attids)
|
partial_attribute_set.num_attids = len(attids)
|
||||||
|
|
||||||
# we expect one block object, a structure, an ARRAY, and a reference to the array
|
# we expect one block object, a structure, an ARRAY, and a
|
||||||
check_blocks(partial_attribute_set, 4)
|
# reference to the array
|
||||||
|
self.check_blocks(partial_attribute_set, 4)
|
||||||
|
|
||||||
return partial_attribute_set
|
return partial_attribute_set
|
||||||
|
|
||||||
def test_fun():
|
def pas_test(self):
|
||||||
pas = get_rodc_partial_attribute_set()
|
pas = self.get_rodc_partial_attribute_set()
|
||||||
check_blocks(pas, 4)
|
self.check_blocks(pas, 4)
|
||||||
req8 = drsuapi.DsGetNCChangesRequest8()
|
req8 = drsuapi.DsGetNCChangesRequest8()
|
||||||
check_blocks(req8, 2)
|
self.check_blocks(req8, 2)
|
||||||
check_blocks(None, 6)
|
self.check_blocks(None, 6)
|
||||||
req8.partial_attribute_set = pas
|
req8.partial_attribute_set = pas
|
||||||
if req8.partial_attribute_set.attids[1] != 2:
|
if req8.partial_attribute_set.attids[1] != 2:
|
||||||
raise Exception("Wrong value in attids[2]")
|
raise Exception("Wrong value in attids[2]")
|
||||||
# we now get an additional reference
|
# we now get an additional reference
|
||||||
samba.talloc_report_full(None)
|
samba.talloc_report_full(None)
|
||||||
check_blocks(None, 7)
|
self.check_blocks(None, 7)
|
||||||
|
|
||||||
test_fun()
|
def test_run(self):
|
||||||
check_blocks(None, 0)
|
self.initial_blocks = samba.talloc_total_blocks(None)
|
||||||
print "All OK"
|
self.check_blocks(None, 0)
|
||||||
sys.exit(0)
|
self.pas_test()
|
||||||
|
self.check_blocks(None, 0)
|
||||||
|
@ -488,6 +488,7 @@ plantestsuite "dsdb.python" dc:local $SUBUNITRUN samba.tests.dsdb
|
|||||||
plantestsuite "netcmd.python" none $SUBUNITRUN samba.tests.netcmd
|
plantestsuite "netcmd.python" none $SUBUNITRUN samba.tests.netcmd
|
||||||
plantestsuite "dcerpc.bare.python" dc:local $SUBUNITRUN samba.tests.dcerpc.bare
|
plantestsuite "dcerpc.bare.python" dc:local $SUBUNITRUN samba.tests.dcerpc.bare
|
||||||
plantestsuite "unixinfo.python" dc:local $SUBUNITRUN samba.tests.dcerpc.unix
|
plantestsuite "unixinfo.python" dc:local $SUBUNITRUN samba.tests.dcerpc.unix
|
||||||
|
plantestsuite "rpc_talloc.python" none $SUBUNITRUN samba.tests.dcerpc.rpc_talloc
|
||||||
plantestsuite "samdb.python" none $SUBUNITRUN samba.tests.samdb
|
plantestsuite "samdb.python" none $SUBUNITRUN samba.tests.samdb
|
||||||
plantestsuite "shares.python" none $SUBUNITRUN samba.tests.shares
|
plantestsuite "shares.python" none $SUBUNITRUN samba.tests.shares
|
||||||
plantestsuite "messaging.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/lib/messaging/tests" $SUBUNITRUN bindings
|
plantestsuite "messaging.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/lib/messaging/tests" $SUBUNITRUN bindings
|
||||||
@ -523,7 +524,6 @@ plantestsuite "blackbox.setpassword.py" none PYTHON="$PYTHON" $samba4srcdir/setu
|
|||||||
plantestsuite "blackbox.newuser.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_newuser.sh "$PREFIX/provision"
|
plantestsuite "blackbox.newuser.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_newuser.sh "$PREFIX/provision"
|
||||||
plantestsuite "blackbox.group.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_group.sh "$PREFIX/provision"
|
plantestsuite "blackbox.group.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_group.sh "$PREFIX/provision"
|
||||||
plantestsuite "blackbox.spn.py" dc:local PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_spn.sh "$PREFIX/dc"
|
plantestsuite "blackbox.spn.py" dc:local PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_spn.sh "$PREFIX/dc"
|
||||||
plantestsuite "blackbox.rpc_talloc.py" dc:local $PYTHON $samba4srcdir/scripting/python/samba/tests/dcerpc/rpc_talloc.py
|
|
||||||
|
|
||||||
# DRS python tests
|
# DRS python tests
|
||||||
plantestsuite "drs_delete_object.python" vampire_dc PYTHONPATH="$PYTHONPATH:$samba4srcdir/torture/drs/python" DC1=\$DC_SERVER DC2=\$VAMPIRE_DC_SERVER $SUBUNITRUN delete_object -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD"
|
plantestsuite "drs_delete_object.python" vampire_dc PYTHONPATH="$PYTHONPATH:$samba4srcdir/torture/drs/python" DC1=\$DC_SERVER DC2=\$VAMPIRE_DC_SERVER $SUBUNITRUN delete_object -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD"
|
||||||
|
Reference in New Issue
Block a user