ubuntu-session
Test plan for component: ofono
Component Checklist: https://wiki.ubuntu.com/Process/Merges/Checklists/Common
Ubuntu Package URL (LP): http://launchpad.net/ubuntu/+source/bluez
Description
This is a test plan for bluez as used by Ubuntu Touch. It does not cover scenarios and/or test cases for bluez installed on the desktop.
NOTE: This only covers BlueZ 5.x and doesn't respect 4.x in any way.
Dependants/Clients
Test Plan
Test target device: Nexus 4, BQ Aquaris E4.5 Secondary/backup device: TBD
Initial set up:
- Install latest image on phone
- Install BlueZ from the silo PPA
- Reboot the phone
Manual Tests
Kernel Bluetooth Management Layer tests
BlueZ comes with several utilities to test the in-kernel bluetooth management layer. Those are
- bnep-tester
- hci-tester
- mgmt-tester
- rfcomm-tester
- userchan-tester
Each of them tests a different functionality part of the kernel bluetooth management layer. We're going to run all of them as part of this test plan.
As preparation for some of them we have to do the following:
- Stop the bluetoothd daemon
$ sudo service bluetooth stop
- Make sure bluetooth is turned off but rfkill not blocked.
$ sudo rfkill unblock bluetooth $ sudo hciconfig hci0 down
- Load VHCI kernel module
$ sudo insmod /lib/modules/hci_vhci.ko
Adapter
As first thing we need to verify the Bluetooth adapter was correctly initialized and is ready to be used. Check with
$ hciconfig
that an HCI interface is present (normally hci0). Output should be similar to this
phablet@ubuntu-phablet:~$ hciconfig hci0: Type: BR/EDR Bus: UART BD Address: 4C:74:03:64:82:1F ACL MTU: 1021:4 SCO MTU: 184:1 DOWN RX bytes:620 acl:0 sco:0 events:31 errors:0 TX bytes:411 acl:0 sco:0 commands:31 errors:0
NOTE: The state of the interface should correspond to the Bluetooth indicator state in the UI. In the example above the interface is DOWN so the indicator should show disabled Bluetooth too.
As next step we verify the adapter is correctly connected the in-kernel management layer.
$ btmgmt info
The output should be similar to this
Index list with 1 item hci0: Primary controller addr 4C:74:03:64:82:1F version 6 manufacturer 70 class 0x000000 supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr current settings: br/edr name MTK MT6582 #1 short name
If no controller is listed the test step should be considered as failed.
HCI
Run the HCI tester with
$ hci-tester
Afterwards we have to evaluate the output. Failed commands with status 0x1 (Unknown HCI command) can be ignored as those are then just not supported by the Bluetooth version the device supports
Management Interface
Run the management interface tester with
$ mgmt-tester
Afterwards we have to evaluate the output. All tests should pass.