All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] test: Adapt test scripts to multi-modem scenarios
@ 2014-06-09  8:22 Alfonso Sanchez-Beato
  2014-06-09 18:10 ` Denis Kenzior
  0 siblings, 1 reply; 3+ messages in thread
From: Alfonso Sanchez-Beato @ 2014-06-09  8:22 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 10056 bytes --]

Some tests scripts were not ready to handle situations with more than
one modem present. This change fixes some of these scripts.
---
 test/activate-context   | 61 +++++++++++++++++++++++++----------------
 test/create-multiparty  | 12 ++++----
 test/deactivate-context | 73 +++++++++++++++++++++++++++++--------------------
 test/hangup-active      | 10 +++++--
 test/private-chat       | 17 ++++++------
 test/release-and-answer | 29 ++++++++++++++------
 test/release-and-swap   | 29 ++++++++++++++------
 7 files changed, 144 insertions(+), 87 deletions(-)

diff --git a/test/activate-context b/test/activate-context
index 22ad173..816de86 100755
--- a/test/activate-context
+++ b/test/activate-context
@@ -5,36 +5,49 @@ import dbus
 
 bus = dbus.SystemBus()
 
-manager = dbus.Interface(bus.get_object('org.ofono', '/'),
-						'org.ofono.Manager')
+manager = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
 
-modems = manager.GetModems()
+if (len(sys.argv) == 1):
+	modems = manager.GetModems()
+	modem = modems[0][0]
+	context_idx = 0
+elif (len(sys.argv) == 2):
+	modems = manager.GetModems()
+	modem = modems[0][0]
+	context_idx = int(sys.argv[1]) - 1
+elif (len(sys.argv) == 3):
+	modem = sys.argv[1]
+	context_idx = int(sys.argv[2]) - 1
+else:
+	print("Usage: %s [modem] [context_number]" % (sys.argv[0]))
+	sys.exit(1)
 
-for path, properties in modems:
-	if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
-		continue
+modemapi = dbus.Interface(bus.get_object('org.ofono', modem), 'org.ofono.Modem')
+properties = modemapi.GetProperties()
 
-	connman = dbus.Interface(bus.get_object('org.ofono', path),
-					'org.ofono.ConnectionManager')
+if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
+	print("org.ofono.ConnectionManager not found")
+	exit(2)
 
-	contexts = connman.GetContexts()
+connman = dbus.Interface(bus.get_object('org.ofono', modem),
+				'org.ofono.ConnectionManager')
 
-	if (len(contexts) == 0):
-		print("No context available")
-		sys.exit(1)
+contexts = connman.GetContexts()
 
-	connman.SetProperty("Powered", dbus.Boolean(1))
+if (len(contexts) == 0):
+	print("No context available")
+	sys.exit(1)
 
-	if len(sys.argv) > 1:
-		path = contexts[int(sys.argv[1])][0]
-	else:
-		path = contexts[0][0]
+connman.SetProperty("Powered", dbus.Boolean(1))
 
-	context = dbus.Interface(bus.get_object('org.ofono', path),
-					'org.ofono.ConnectionContext')
+path = contexts[context_idx][0]
+
+context = dbus.Interface(bus.get_object('org.ofono', path),
+				'org.ofono.ConnectionContext')
+
+try:
+	context.SetProperty("Active", dbus.Boolean(1), timeout = 100)
+except dbus.DBusException as e:
+	print("Error activating %s: %s" % (path, str(e)))
+	exit(2)
 
-	try:
-		context.SetProperty("Active", dbus.Boolean(1), timeout = 100)
-	except dbus.DBusException as e:
-		print("Error activating %s: %s" % (path, str(e)))
-		exit(2)
diff --git a/test/create-multiparty b/test/create-multiparty
index b6395e8..1b76010 100755
--- a/test/create-multiparty
+++ b/test/create-multiparty
@@ -8,12 +8,14 @@ bus = dbus.SystemBus()
 manager = dbus.Interface(bus.get_object('org.ofono', '/'),
 						'org.ofono.Manager')
 
-modems = manager.GetModems()
-
-path = modems[0][0]
-
-if (len(sys.argv) == 2):
+if (len(sys.argv) == 1):
+	modems = manager.GetModems()
+	path = modems[0][0]
+elif (len(sys.argv) == 2):
 	path = sys.argv[1]
+else:
+	print("Usage: %s [modem]" % (sys.argv[0]))
+	sys.exit(1)
 
 manager = dbus.Interface(bus.get_object('org.ofono', path),
 						'org.ofono.VoiceCallManager')
diff --git a/test/deactivate-context b/test/deactivate-context
index bc2ffd3..6a5164a 100755
--- a/test/deactivate-context
+++ b/test/deactivate-context
@@ -5,34 +5,47 @@ import dbus
 
 bus = dbus.SystemBus()
 
-manager = dbus.Interface(bus.get_object('org.ofono', '/'),
-						'org.ofono.Manager')
+manager = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
+
+if (len(sys.argv) == 1):
+	modems = manager.GetModems()
+	modem = modems[0][0]
+	context_idx = 0
+elif (len(sys.argv) == 2):
+	modems = manager.GetModems()
+	modem = modems[0][0]
+	context_idx = int(sys.argv[1]) - 1
+elif (len(sys.argv) == 3):
+	modem = sys.argv[1]
+	context_idx = int(sys.argv[2]) - 1
+else:
+	print("Usage: %s [modem] [context_number]" % (sys.argv[0]))
+	sys.exit(1)
+
+modemapi = dbus.Interface(bus.get_object('org.ofono', modem), 'org.ofono.Modem')
+properties = modemapi.GetProperties()
+
+if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
+	print("org.ofono.ConnectionManager not found")
+	exit(2)
+
+connman = dbus.Interface(bus.get_object('org.ofono', modem),
+				'org.ofono.ConnectionManager')
+
+contexts = connman.GetContexts()
+
+if (len(contexts) == 0):
+	print("No context available")
+	sys.exit(1)
+
+path = contexts[context_idx][0]
+
+context = dbus.Interface(bus.get_object('org.ofono', path),
+				'org.ofono.ConnectionContext')
+
+try:
+	context.SetProperty("Active", dbus.Boolean(0))
+except dbus.DBusException as e:
+	print("Error deactivating %s: %s" % (path, str(e)))
+	exit(2)
 
-modems = manager.GetModems()
-
-for path, properties in modems:
-	if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
-		continue
-
-	connman = dbus.Interface(bus.get_object('org.ofono', path),
-					'org.ofono.ConnectionManager')
-
-	contexts = connman.GetContexts()
-
-	if (len(contexts) == 0):
-		print("No context available")
-		sys.exit(1)
-
-	if len(sys.argv) > 1:
-		path = contexts[int(sys.argv[1])][0]
-	else:
-		path = contexts[0][0]
-
-	context = dbus.Interface(bus.get_object('org.ofono', path),
-					'org.ofono.ConnectionContext')
-
-	try:
-		context.SetProperty("Active", dbus.Boolean(0))
-	except dbus.DBusException as e:
-		print("Error activating %s: %s" % (path, str(e)))
-		exit(2)
diff --git a/test/hangup-active b/test/hangup-active
index 8e65bc4..82e0eb0 100755
--- a/test/hangup-active
+++ b/test/hangup-active
@@ -8,8 +8,14 @@ bus = dbus.SystemBus()
 manager = dbus.Interface(bus.get_object('org.ofono', '/'),
 						'org.ofono.Manager')
 
-modems = manager.GetModems()
-path = modems[0][0]
+if (len(sys.argv) == 1):
+	modems = manager.GetModems()
+	path = modems[0][0]
+elif (len(sys.argv) == 2):
+	path = sys.argv[1]
+else:
+	print("Usage: %s [modem]" % (sys.argv[0]))
+	sys.exit(1)
 
 manager = dbus.Interface(bus.get_object('org.ofono', path),
 						'org.ofono.VoiceCallManager')
diff --git a/test/private-chat b/test/private-chat
index 17d17d0..e7e5406 100755
--- a/test/private-chat
+++ b/test/private-chat
@@ -3,24 +3,23 @@
 import sys
 import dbus
 
+if (len(sys.argv) != 2):
+	print("Usage: %s [voicecall_path]" % (sys.argv[0]))
+	exit(1)
+
 bus = dbus.SystemBus()
 
 manager = dbus.Interface(bus.get_object('org.ofono', '/'),
 						'org.ofono.Manager')
 
-modems = manager.GetModems()
-path = modems[0][0]
-
-if (len(sys.argv) == 3):
-	path = sys.argv[1]
-	callid = sys.argv[2]
-else:
-	callid = sys.argv[1]
+call = sys.argv[1]
+sep = call.find("/", 1)
+path = call[0:sep]
 
 manager = dbus.Interface(bus.get_object('org.ofono', path),
 						'org.ofono.VoiceCallManager')
 
-mpty = manager.PrivateChat(callid, timeout=100)
+mpty = manager.PrivateChat(call, timeout=100)
 
 for path in mpty:
 	print(path)
diff --git a/test/release-and-answer b/test/release-and-answer
index 62eaa79..a8a9319 100755
--- a/test/release-and-answer
+++ b/test/release-and-answer
@@ -1,5 +1,6 @@
 #!/usr/bin/python3
 
+import sys
 import dbus
 
 bus = dbus.SystemBus()
@@ -9,14 +10,26 @@ manager = dbus.Interface(bus.get_object('org.ofono', '/'),
 
 modems = manager.GetModems()
 
-for path, properties in modems:
-	print("[ %s ]" % (path))
+if (len(sys.argv) == 1):
+	modems = manager.GetModems()
+	path = modems[0][0]
+elif (len(sys.argv) == 2):
+	path = sys.argv[1]
+else:
+	print("Usage: %s [modem]" % (sys.argv[0]))
+	exit(1)
 
-	if "org.ofono.VoiceCallManager" not in properties["Interfaces"]:
-		continue
+modemapi = dbus.Interface(bus.get_object('org.ofono', path), 'org.ofono.Modem')
+properties = modemapi.GetProperties()
 
-	mgr = dbus.Interface(bus.get_object('org.ofono', path),
-					'org.ofono.VoiceCallManager')
+if "org.ofono.VoiceCallManager" not in properties["Interfaces"]:
+	print("org.ofono.VoiceCallManager not found")
+	exit(2)
+
+print("[ %s ]" % (path))
+
+mgr = dbus.Interface(bus.get_object('org.ofono', path),
+			'org.ofono.VoiceCallManager')
+
+mgr.ReleaseAndAnswer()
 
-	mgr.ReleaseAndAnswer()
-	break
diff --git a/test/release-and-swap b/test/release-and-swap
index b4c0af1..3276bf5 100755
--- a/test/release-and-swap
+++ b/test/release-and-swap
@@ -1,5 +1,6 @@
 #!/usr/bin/python3
 
+import sys
 import dbus
 
 bus = dbus.SystemBus()
@@ -7,16 +8,26 @@ bus = dbus.SystemBus()
 manager = dbus.Interface(bus.get_object('org.ofono', '/'),
 						'org.ofono.Manager')
 
-modems = manager.GetModems()
+if (len(sys.argv) == 1):
+	modems = manager.GetModems()
+	modem = modems[0][0]
+elif (len(sys.argv) == 2):
+	modem = sys.argv[1]
+else:
+	print("Usage: %s [modem]" % (sys.argv[0]))
+	exit(1)
 
-for path, properties in modems:
-	print("[ %s ]" % (path))
+modemapi = dbus.Interface(bus.get_object('org.ofono', modem), 'org.ofono.Modem')
+properties = modemapi.GetProperties()
 
-	if "org.ofono.VoiceCallManager" not in properties["Interfaces"]:
-		continue
+if "org.ofono.VoiceCallManager" not in properties["Interfaces"]:
+	print("org.ofono.VoiceCallManager not found")
+	exit(2)
 
-	mgr = dbus.Interface(bus.get_object('org.ofono', path),
-					'org.ofono.VoiceCallManager')
+print("[ %s ]" % (modem))
+
+mgr = dbus.Interface(bus.get_object('org.ofono', modem),
+			'org.ofono.VoiceCallManager')
+
+mgr.ReleaseAndSwap()
 
-	mgr.ReleaseAndSwap()
-	break
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-06-10  8:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-09  8:22 [PATCH] test: Adapt test scripts to multi-modem scenarios Alfonso Sanchez-Beato
2014-06-09 18:10 ` Denis Kenzior
2014-06-10  8:30   ` Alfonso Sanchez-Beato

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.