summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rwxr-xr-xsource4/scripting/python/samba/tests/dcerpc/rpc_talloc.py104
-rwxr-xr-xsource4/selftest/tests.sh2
2 files changed, 60 insertions, 46 deletions
diff --git a/source4/scripting/python/samba/tests/dcerpc/rpc_talloc.py b/source4/scripting/python/samba/tests/dcerpc/rpc_talloc.py
index 7a1ddb50f1..6dd3d07e84 100755
--- a/source4/scripting/python/samba/tests/dcerpc/rpc_talloc.py
+++ b/source4/scripting/python/samba/tests/dcerpc/rpc_talloc.py
@@ -1,56 +1,70 @@
#!/usr/bin/env python
# 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
sys.path.insert(0, "bin/python")
import samba
+import samba.tests
from samba.dcerpc import drsuapi
samba.talloc_enable_null_tracking()
-initial_blocks = samba.talloc_total_blocks(None)
-
-def check_blocks(object, num_expected):
- nblocks = samba.talloc_total_blocks(object)
- if object is None:
- nblocks -= initial_blocks
- if 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():
- '''get a list of attributes for RODC replication'''
- partial_attribute_set = drsuapi.DsPartialAttributeSet()
-
- # we expect one block for the object, and one for the structure
- check_blocks(partial_attribute_set, 2)
-
- attids = [ 1, 2, 3]
- partial_attribute_set.version = 1
- partial_attribute_set.attids = attids
- partial_attribute_set.num_attids = len(attids)
-
- # we expect one block object, a structure, an ARRAY, and a reference to the array
- check_blocks(partial_attribute_set, 4)
-
- return partial_attribute_set
-
-def test_fun():
- pas = get_rodc_partial_attribute_set()
- check_blocks(pas, 4)
- req8 = drsuapi.DsGetNCChangesRequest8()
- check_blocks(req8, 2)
- check_blocks(None, 6)
- req8.partial_attribute_set = pas
- if req8.partial_attribute_set.attids[1] != 2:
- raise Exception("Wrong value in attids[2]")
- # we now get an additional reference
- samba.talloc_report_full(None)
- check_blocks(None, 7)
-
-test_fun()
-check_blocks(None, 0)
-print "All OK"
-sys.exit(0)
+
+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)
+ if object is None:
+ nblocks -= self.initial_blocks
+ self.assertEquals(nblocks, num_expected)
+
+
+ def get_rodc_partial_attribute_set(self):
+ '''get a list of attributes for RODC replication'''
+ partial_attribute_set = drsuapi.DsPartialAttributeSet()
+
+ # we expect one block for the object, and one for the structure
+ self.check_blocks(partial_attribute_set, 2)
+
+ attids = [ 1, 2, 3]
+ partial_attribute_set.version = 1
+ partial_attribute_set.attids = attids
+ partial_attribute_set.num_attids = len(attids)
+
+ # we expect one block object, a structure, an ARRAY, and a
+ # reference to the array
+ self.check_blocks(partial_attribute_set, 4)
+
+ return partial_attribute_set
+
+ def pas_test(self):
+ pas = self.get_rodc_partial_attribute_set()
+ self.check_blocks(pas, 4)
+ req8 = drsuapi.DsGetNCChangesRequest8()
+ self.check_blocks(req8, 2)
+ self.check_blocks(None, 6)
+ req8.partial_attribute_set = pas
+ if req8.partial_attribute_set.attids[1] != 2:
+ raise Exception("Wrong value in attids[2]")
+ # we now get an additional reference
+ samba.talloc_report_full(None)
+ self.check_blocks(None, 7)
+
+ def test_run(self):
+ self.initial_blocks = samba.talloc_total_blocks(None)
+ self.check_blocks(None, 0)
+ self.pas_test()
+ self.check_blocks(None, 0)
diff --git a/source4/selftest/tests.sh b/source4/selftest/tests.sh
index 917f572036..0341d3ef70 100755
--- a/source4/selftest/tests.sh
+++ b/source4/selftest/tests.sh
@@ -488,6 +488,7 @@ plantestsuite "dsdb.python" dc:local $SUBUNITRUN samba.tests.dsdb
plantestsuite "netcmd.python" none $SUBUNITRUN samba.tests.netcmd
plantestsuite "dcerpc.bare.python" dc:local $SUBUNITRUN samba.tests.dcerpc.bare
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 "shares.python" none $SUBUNITRUN samba.tests.shares
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.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.rpc_talloc.py" dc:local $PYTHON $samba4srcdir/scripting/python/samba/tests/dcerpc/rpc_talloc.py
# 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"