[RFC BlueZ v2 13/13] test: Add --uuid to test-service

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Mikel Astiz <mikel.astiz@xxxxxxxxxxxx>

Extend the test script with an optional filter to let the user operate
on services matching a given UUID.
---
 test/test-service | 34 ++++++++++++++++++++++++++--------
 1 file changed, 26 insertions(+), 8 deletions(-)

diff --git a/test/test-service b/test/test-service
index 48426f9..f8dee66 100755
--- a/test/test-service
+++ b/test/test-service
@@ -22,6 +22,8 @@ mainloop = GObject.MainLoop()
 option_list = [
 		make_option("-i", "--adapter", action="store",
 				type="string", dest="adap_id"),
+		make_option("-u", "--uuid", action="store",
+				type="string", dest="uuid"),
 		]
 
 description="Test script to operate on org.bluez.Service1 interfaces"
@@ -29,8 +31,8 @@ usage = "usage: %prog [options] <command> [<args>]"
 epilog="""
 Commands:
 	list [<address>]
-	connect <address> <service-path-suffix>
-	disconnect <address> <service-path-suffix>
+	connect [<address> [<service-path-suffix>]]
+	disconnect [<address> [<service-path-suffix>]]
 
 """
 
@@ -47,6 +49,10 @@ if len(args) < 1:
 	parser.print_help()
 	sys.exit(1)
 
+uuid = None
+if options.uuid:
+	uuid = bluezutils.parse_uuid(options.uuid)
+
 if args[0] == "list":
 	if len(args) > 2:
 		parser.print_help()
@@ -84,6 +90,10 @@ if args[0] == "list":
 
 			if properties["Device"] != path:
 				continue
+			elif uuid:
+				if properties["UUID"] != uuid:
+					continue
+				del(properties["UUID"])
 
 			print("    [ " + service_path + " ]")
 
@@ -103,23 +113,31 @@ if args[0] == "list":
 	sys.exit(0)
 
 def service_do(func):
-	if len(args) < 3:
-		parser.print_help()
+	if len(args) < 3 and not(uuid):
+		print("ERROR: Either service suffix or UUID must be specified")
 		sys.exit(1)
 
 	objects = bluezutils.get_managed_objects()
 	adapter = bluezutils.find_adapter_in_objects(objects, options.adap_id)
-	device = bluezutils.find_device_in_objects(objects, args[1],
+
+	device = None
+	if len(args) >= 2:
+		device = bluezutils.find_device_in_objects(objects, args[1],
 								options.adap_id)
-	path_suffix = args[2]
+	path_suffix = None
+	if len(args) >= 3:
+		path_suffix = args[2]
+
 	found = False
 	for path, ifaces in objects.iteritems():
 		service = ifaces.get(SERVICE_INTERFACE)
 		if service is None:
 			continue
-		if device.object_path != service["Device"]:
+		if device and device.object_path != service["Device"]:
+			continue
+		if uuid and uuid != service["UUID"]:
 			continue
-		if not(path.endswith(path_suffix)):
+		if path_suffix and not(path.endswith(path_suffix)):
 			continue
 		try:
 			found = True
-- 
1.8.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux