Closed Bug 846139 Opened 7 years ago Closed 3 years ago

Attempt basic automated bluetooth testing with two real phones controlled by marionette


(Core :: General, defect)

Not set





(Reporter: cjones, Unassigned)



I've heard that manual testing of bluetooth isn't unusual in industry, but it's a big PITA.  We should try to do something better.

Here's a proposal: use a trick similar to what we do for telephony and SMS testing: wire two b2g devices up to each other and control both with marionette.  We need real hardware to test BT, and it's trickier to control two devices, but that's "just" an infrastructure problem ;).

Luckily, unlike telephony, BT doesn't rely on an external network or server.

This testing should be done independently of the gaia UI, though it would be cool to have gaia UI tests built on something like bug 846129.

The way it might work is
 - allocate two testing devices, D1 and D2
 - have the python test controller send "setup scripts" to D1 and D2.  These scripts would assign random device names to the BT nodes.
 - send "initiate-pair" and "receive-pair" scripts to the two phones along with each other's device names.  D1 does a device scan and looks for D2.  When D1 finds D2, it initiates a pair request.  D2 verifies that D1 initiated the pair, and checks the PIN etc., and accepts.
 - from there on, we can test at least file transfer.  D2 sends a file to D1, D1 verifies the contents.  Test various edge cases.

Maybe there are features other than file transfer we could test with this setup.  I'm not sure.

This is by no means complete coverage, but gives us /something/ we can test in infra.

Bluetooth folks, what do you think?
Except integration/ automatic test, we need to construct foundation of unit test as well.
Mocked DBus system is required for BT unit & module level testing. That's the thing that TPE team is going to build up in BT module.
Closed: 3 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.