Feature #2213
closedFeature #2193: write osmo-gsm-tester test cases and extend tester API
osmo-gsm-tester: implement ofono integration to receive SMS
100%
Description
in ofono_client.py, actually connect to the signal that receives SMS (org.ofono.MessageManager.IncomingMessage) for each modem that is in use. Implement the API to verify whether a given SMS was received.
Updated by neels about 7 years ago
the first short term goal is to have that mo_mt_sms.py test run on the modems currently connected to the main unit. Until we receive more Sierra modems = as long as we have only one sierra plugged into the R&D setup, only the sierra_2 is capable of sending SMS, the gobi_0 and gobi_3 are capable of receiving (and gobi_1 is just a paperweight).
So the shortest way there would be: register only the sierra_2 and gobi_0 in resources.conf, so that the sierra_2 gets used as MO (the one sending the sms), and then add the missing parts in the test API. i.e. in the Modem class from http://git.osmocom.org/osmo-gsm-tester/tree/src/osmo_gsm_tester/ofono_client.py -- this the object obtained by suite.modem().
Updated by neels about 7 years ago
check out #2187#note-2 which lists the IMSIs used in the modems.
You need to query the matching KIs from sysmocom's sim database.
Updated by pespin about 7 years ago
- Status changed from New to In Progress
- Assignee changed from 118 to pespin
Updated by neels about 7 years ago
- Assignee changed from pespin to neels
- % Done changed from 0 to 100
SMS are received now by the Modem class.
See this log output of the first successful run:
+ ssh root@10.9.1.190 'python3 -u /usr/local/src/osmo-gsm-tester/src/osmo-gsm-tester.py /var/tmp/osmo-gsm-tester/trial-28 -T' combinations: None series: None trials: ['/var/tmp/osmo-gsm-tester/trial-28'] tests: None Running default suites: sms:sysmo 16:36:29 tst trial-28: Trial start [trial.py:63] ------------------------------------------ trial-28 sms:sysmo ------------------------------------------ 16:36:29 tst sms:sysmo: Suite run start [trial-28↪sms:sysmo] [suite.py:191] 16:36:29 tst sms:sysmo: reserving resources... [trial-28↪sms:sysmo] [suite.py:186] 16:36:29 tst mo_mt_sms.py: START [trial-28↪sms:sysmo↪mo_mt_sms.py] [suite.py:96] 16:36:29 tst mo_mt_sms.py:4: use resources... [trial-28↪sms:sysmo↪mo_mt_sms.py:4] [mo_mt_sms.py:4] 16:36:31 tst mo_mt_sms.py:10: start nitb and bts... [trial-28↪sms:sysmo↪mo_mt_sms.py:10] [mo_mt_sms.py:10] 16:36:31 run osmo-nitb_10.42.42.1: Starting osmo-nitb [trial-28↪sms:sysmo↪mo_mt_sms.py:12↪osmo-nitb_10.42.42.1] [osmo_nitb.py:43] 16:36:33 run osmo-nitb_10.42.42.1(pid=8798): Launched [trial-28↪sms:sysmo↪mo_mt_sms.py:12↪osmo-nitb_10.42.42.1(pid=8798)] [process.py:80] 16:36:34 run osmo-bts-sysmo: Starting sysmoBTS to connect to osmo-nitb_10.42.42.1 [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo] [bts_sysmo.py:48] 16:36:35 run rm-remote-dir(pid=8799): Launched [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪rm-remote-dir(pid=8799)] [process.py:80] 16:36:37 run rm-remote-dir(pid=8799): Terminated: ok {rc=0} [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪rm-remote-dir(pid=8799)] [process.py:131] 16:36:38 run mk-remote-dir(pid=8800): Launched [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪mk-remote-dir(pid=8800)] [process.py:80] 16:36:40 run mk-remote-dir(pid=8800): Terminated: ok {rc=0} [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪mk-remote-dir(pid=8800)] [process.py:131] 16:36:40 run scp-inst-to-sysmobts(pid=8801): Launched [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪scp-inst-to-sysmobts(pid=8801)] [process.py:80] 16:36:53 run scp-inst-to-sysmobts(pid=8801): Terminated: ok {rc=0} [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪scp-inst-to-sysmobts(pid=8801)] [process.py:131] 16:36:54 run mk-remote-run-dir(pid=8803): Launched [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪mk-remote-run-dir(pid=8803)] [process.py:80] 16:36:56 run mk-remote-run-dir(pid=8803): Terminated: ok {rc=0} [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪mk-remote-run-dir(pid=8803)] [process.py:131] 16:36:56 run scp-cfg-to-sysmobts(pid=8804): Launched [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪scp-cfg-to-sysmobts(pid=8804)] [process.py:80] 16:36:59 run scp-cfg-to-sysmobts(pid=8804): Terminated: ok {rc=0} [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪scp-cfg-to-sysmobts(pid=8804)] [process.py:131] 16:37:00 run osmo-bts-sysmo(pid=8809): Launched [trial-28↪sms:sysmo↪mo_mt_sms.py:15↪osmo-bts-sysmo↪osmo-bts-sysmo(pid=8809)] [process.py:80] 16:37:00 run osmo-nitb_10.42.42.1: Add subscriber {imsi='901700000009031', msisdn='1003'} [trial-28↪sms:sysmo↪mo_mt_sms.py:17↪osmo-nitb_10.42.42.1] [osmo_nitb.py:93] 16:37:00 run osmo-nitb_10.42.42.1: Add subscriber {imsi='901700000009029', msisdn='1004'} [trial-28↪sms:sysmo↪mo_mt_sms.py:18↪osmo-nitb_10.42.42.1] [osmo_nitb.py:93] 16:37:00 bus /sierra_1: connect to osmo-nitb_10.42.42.1 [trial-28↪sms:sysmo↪mo_mt_sms.py:20↪/sierra_1] [ofono_client.py:151] 16:37:01 bus /sierra_1: Setting Powered False [trial-28↪sms:sysmo↪mo_mt_sms.py:20↪/sierra_1] [ofono_client.py:81] 16:37:03 bus /sierra_1: Setting Powered True [trial-28↪sms:sysmo↪mo_mt_sms.py:20↪/sierra_1] [ofono_client.py:81] 16:37:03 bus /sierra_1: Setting Online False [trial-28↪sms:sysmo↪mo_mt_sms.py:20↪/sierra_1] [ofono_client.py:81] 16:37:03 bus /sierra_1: Setting Online True [trial-28↪sms:sysmo↪mo_mt_sms.py:20↪/sierra_1] [ofono_client.py:81] 16:37:04 bus /sierra_1: No 'org.ofono.NetworkRegistration' interface, hoping that the modem connects by itself [trial-28↪sms:sysmo↪mo_mt_sms.py:20↪/sierra_1] [ofono_client.py:157] 16:37:04 bus /sierra_2: connect to osmo-nitb_10.42.42.1 [trial-28↪sms:sysmo↪mo_mt_sms.py:21↪/sierra_2] [ofono_client.py:151] 16:37:04 bus /sierra_2: Setting Powered False [trial-28↪sms:sysmo↪mo_mt_sms.py:21↪/sierra_2] [ofono_client.py:81] 16:37:07 bus /sierra_2: Setting Powered True [trial-28↪sms:sysmo↪mo_mt_sms.py:21↪/sierra_2] [ofono_client.py:81] 16:37:07 bus /sierra_2: Setting Online False [trial-28↪sms:sysmo↪mo_mt_sms.py:21↪/sierra_2] [ofono_client.py:81] 16:37:07 bus /sierra_2: Setting Online True [trial-28↪sms:sysmo↪mo_mt_sms.py:21↪/sierra_2] [ofono_client.py:81] 16:37:08 bus /sierra_2: No 'org.ofono.NetworkRegistration' interface, hoping that the modem connects by itself [trial-28↪sms:sysmo↪mo_mt_sms.py:21↪/sierra_2] [ofono_client.py:157] 16:37:08 tst mo_mt_sms.py:22: {'Interfaces': ['org.ofono.SmartMessaging', 'org.ofono.PushNotification', 'org.ofono.MessageManager', 'org.ofono.NetworkRegistration', 'org.ofono.ConnectionManager', 'org.ofono.SupplementaryServices', 'org.ofono.RadioSettings', 'org.ofono.AllowedAccessPoints', 'org.ofono.SimManager', 'org.ofono.LocationReporting', 'org.ofono.VoiceCallManager'], 'Powered': True, 'Model': 'MC7304', 'Manufacturer': 'Sierra Wireless, Incorporated', 'Emergency': False, 'Lockdown': False, 'Type': 'hardware', 'Online': True, 'Revision': 'SWI9X15C_05.05.66.00 r29972 CARMD-EV-FRMWR1 2015/10/08 08:36:28', 'Serial': '356853054230919', 'Features': ['sms', 'net', 'gprs', 'ussd', 'rat', 'sim', 'gps']} [trial-28↪sms:sysmo↪mo_mt_sms.py:22] [mo_mt_sms.py:22] 16:37:08 tst mo_mt_sms.py:23: {'Interfaces': ['org.ofono.SimManager', 'org.ofono.LocationReporting', 'org.ofono.VoiceCallManager'], 'Powered': True, 'Model': 'MC7304', 'Manufacturer': 'Sierra Wireless, Incorporated', 'Emergency': False, 'Lockdown': False, 'Type': 'hardware', 'Online': True, 'Revision': 'SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23', 'Serial': '356853052645654', 'Features': ['sim', 'gps']} [trial-28↪sms:sysmo↪mo_mt_sms.py:23] [mo_mt_sms.py:23] 16:37:36 bus /sierra_1: sending sms to MSISDN 1004 {sms='message nr. 1 sent from 1003 to 1004'} [trial-28↪sms:sysmo↪mo_mt_sms.py:26↪/sierra_1] [ofono_client.py:165] 16:37:42 bus /sierra_2: Incoming SMS: 'message nr. 1 sent from 1003 to 1004' {info={LocalSentTime='2017-05-02T16:37:40+0200', Sender='1003', SentTime='2017-05-02T14:37:40+0000'}} [trial-28↪sms:sysmo↪mo_mt_sms.py:27↪/sierra_2] [ofono_client.py:173] 16:37:42 bus /sierra_2: Incoming SMS: 'message nr. 1 sent from 1003 to 1004' {info={LocalSentTime='2017-05-02T16:37:40+0200', Sender='1003', SentTime='2017-05-02T14:37:40+0000'}} [trial-28↪sms:sysmo↪mo_mt_sms.py:27↪/sierra_2] [ofono_client.py:173] 16:37:42 bus /sierra_2: SMS received as expected: {info={LocalSentTime='2017-05-02T16:37:40+0200', Sender='1003', SentTime='2017-05-02T14:37:40+0000'}, msg='message nr. 1 sent from 1003 to 1004'} [trial-28↪sms:sysmo↪mo_mt_sms.py:27↪/sierra_2] [ofono_client.py:179] 16:37:42 tst mo_mt_sms.py: PASS [trial-28↪sms:sysmo↪mo_mt_sms.py] [suite.py:106] 16:37:42 run osmo-nitb_10.42.42.1(pid=8798): Terminating (SIGINT) [trial-28↪osmo-nitb_10.42.42.1(pid=8798)] [process.py:106] 16:37:45 run osmo-nitb_10.42.42.1(pid=8798): Terminated: ok {rc=0} [trial-28↪osmo-nitb_10.42.42.1(pid=8798)] [process.py:131] 16:37:45 run osmo-bts-sysmo(pid=8809): Terminating (SIGINT) [trial-28↪osmo-bts-sysmo(pid=8809)] [process.py:106] 16:37:45 run osmo-bts-sysmo(pid=8809): Terminated {rc=130} [trial-28↪osmo-bts-sysmo(pid=8809)] [process.py:133] 16:37:45 tst sms:sysmo: PASS [trial-28↪sms:sysmo] [osmo-gsm-tester.py:166] 16:37:45 tst trial-28: PASS [trial-28↪trial-28] [osmo-gsm-tester.py:171] 16:37:45 tst trial-28: Trial end [trial.py:68] ------------------------------------------ ------------------------------------------ ------------------------------------------ Trials passed: trial-28 Finished: SUCCESS