linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mikel Astiz <mikel.astiz.oss@gmail.com>
To: linux-bluetooth@vger.kernel.org
Cc: Mikel Astiz <mikel.astiz@bmw-carit.de>
Subject: [RFC BlueZ v2 13/13] test: Add --uuid to test-service
Date: Wed, 12 Jun 2013 09:06:55 +0200	[thread overview]
Message-ID: <1371020815-22330-14-git-send-email-mikel.astiz.oss@gmail.com> (raw)
In-Reply-To: <1371020815-22330-1-git-send-email-mikel.astiz.oss@gmail.com>

From: Mikel Astiz <mikel.astiz@bmw-carit.de>

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


  parent reply	other threads:[~2013-06-12  7:06 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-12  7:06 [RFC BlueZ v2 00/13] Add experimental org.bluez.Service1 Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 01/13] test: Remove obsolete test script Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 02/13] test: Add UUID alias table to bluezutils.py Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 03/13] test: Support human-friendly UUIDs in test-device Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 04/13] test: Show human-friendly UUIDs in list-devices Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 05/13] dbus: Add new org.bluez.Service1 Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 06/13] dbus: Add Device property to org.bluez.Service1 Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 07/13] dbus: Add UUID " Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 08/13] dbus: Add state " Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 09/13] dbus: Add Connect/Disconnect " Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 10/13] doc: Add API documentation for org.bluez.Service1 Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 11/13] dbus: Deprecate old profile-connecting API Mikel Astiz
2013-06-12  7:06 ` [RFC BlueZ v2 12/13] test: Add test-service script Mikel Astiz
2013-06-12  7:06 ` Mikel Astiz [this message]
2013-06-16 11:50 ` [RFC BlueZ v2 00/13] Add experimental org.bluez.Service1 Marcel Holtmann
2013-06-16 13:58   ` Mikel Astiz
2013-06-19  8:02     ` Marcel Holtmann
2013-06-19 13:00       ` Mikel Astiz
2013-06-19 21:13         ` Marcel Holtmann
2013-07-04  8:27           ` Mikel Astiz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1371020815-22330-14-git-send-email-mikel.astiz.oss@gmail.com \
    --to=mikel.astiz.oss@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=mikel.astiz@bmw-carit.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).