diff options
author | John (J5) Palmieri <johnp@redhat.com> | 2005-10-14 21:44:00 +0000 |
---|---|---|
committer | John (J5) Palmieri <johnp@redhat.com> | 2005-10-14 21:44:00 +0000 |
commit | 0ae9f138ad4dfacbbd28abd39ce3dee66333539a (patch) | |
tree | c2796ea79ca9e0eab9e5b4fa3be416a4b0394007 /test | |
parent | 7667a2ae4ae4912f8130895e828d1dfb87050870 (diff) | |
download | dbus-0ae9f138ad4dfacbbd28abd39ce3dee66333539a.tar.gz |
* python/dbus_bindings.pyx (MessageIter::append_strict): check for
STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
* python/service.py (Object::_message_cb): handle exceptions correctly
by sending them over the wire to the calling app. This makes sure
the client returns immediately instead of waiting the 15 seconds to
timeout.
* test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
Add a test to benchmark how long it takes to introspect a service and
call a method which returns a large element (pretty fast)
* test/python/test-service.py (TestObject::GetComplexArray): new test
method which pushes a lot of data
Diffstat (limited to 'test')
-rwxr-xr-x | test/python/run-test.sh | 4 | ||||
-rwxr-xr-x | test/python/test-client.py | 14 | ||||
-rwxr-xr-x | test/python/test-service.py | 9 |
3 files changed, 25 insertions, 2 deletions
diff --git a/test/python/run-test.sh b/test/python/run-test.sh index 600eb6d7..aa6bd366 100755 --- a/test/python/run-test.sh +++ b/test/python/run-test.sh @@ -29,6 +29,10 @@ fi ln -s $DBUS_TOP_BUILDDIR/python $DBUS_TOP_BUILDDIR/python/dbus echo "running test-client.py" +#uncomment this if you need to see the output from the service for debugging +#otherwise keep it commented so we can test activation +#libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/python/test-service.py & + libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/python/test-client.py || die "test-client.py failed" rm $DBUS_TOP_BUILDDIR/python/dbus diff --git a/test/python/test-client.py b/test/python/test-client.py index 08c547fd..f90ce13c 100755 --- a/test/python/test-client.py +++ b/test/python/test-client.py @@ -2,6 +2,7 @@ import sys import os import unittest +import time builddir = os.environ["DBUS_TOP_BUILDDIR"] pydir = builddir + "/python" @@ -29,7 +30,6 @@ test_types_vals = [1, 12323231, 3.14159265, 99999999.99, ([1,2,3],"c", 1.2, ["a","b","c"], {"a": (1,"v"), "b": (2,"d")}) ] - class TestDBusBindings(unittest.TestCase): def setUp(self): self.bus = dbus.SessionBus() @@ -57,7 +57,17 @@ class TestDBusBindings(unittest.TestCase): print "Testing %s"% str(send_val) recv_val = self.iface.Echo(send_val) self.assertEquals(send_val, recv_val) - + + def testBenchmarkIntrospect(self): + print "\n********* Benchmark Introspect ************" + a = time.time() + print a + print self.iface.GetComplexArray() + b = time.time() + print b + print "Delta: %f" % (b - a) + self.assert_(True) + def testAsyncCalls(self): #test sending python types and getting them back async print "\n********* Testing Async Calls ***********" diff --git a/test/python/test-service.py b/test/python/test-service.py index 8f3cb7af..36c2df7c 100755 --- a/test/python/test-service.py +++ b/test/python/test-service.py @@ -16,6 +16,7 @@ if not dbus.__file__.startswith(pydir): import dbus.service import dbus.glib import gobject +import random class TestObject(dbus.service.Object): def __init__(self, bus_name, object_path="/org/freedesktop/DBus/TestSuitePythonObject"): @@ -27,6 +28,14 @@ class TestObject(dbus.service.Object): def Echo(self, arg): return arg + @dbus.service.method("org.freedesktop.DBus.TestSuiteInterface") + def GetComplexArray(self): + ret = [] + for i in range(0,100): + ret.append((random.randint(0,100), random.randint(0,100), str(random.randint(0,100)))) + + return dbus.Array(ret, signature="(uus)") + session_bus = dbus.SessionBus() name = dbus.service.BusName("org.freedesktop.DBus.TestSuitePythonService", bus=session_bus) object = TestObject(name) |