OLD | NEW |
(Empty) | |
| 1 # Testing |
| 2 |
| 3 Implementation of the Bluetooth component is tested via unittests. Client code |
| 4 uses Mock Bluetooth objects: |
| 5 |
| 6 ## Mojo Testing Interface Implementation |
| 7 See [//public/interfaces/test/README.md](//device/bluetooth/public/interfaces/te
st/README.md) |
| 8 for details about the interface. The current implementation of this interface |
| 9 creates a fake implementation of the current non-mojo C++ Bluetooth interface. |
| 10 This interface is implemented across files with a "fake_" prefix. |
| 11 *This interface may be removed when a Bluetooth Mojo Service is introduced, if |
| 12 Web Bluetooth remains its only client. Testing code would implement the service |
| 13 as needed for tests.* |
| 14 |
| 15 ## Cross Platform Unit Tests |
| 16 |
| 17 New feature development uses cross platform unit tests. This reduces test code |
| 18 redundancy and produces consistency across all implementations. |
| 19 |
| 20 Unit tests operate at the public `device/bluetooth` API layer and the |
| 21 `BluetoothTest` fixture controls fake operating system behavior as close to the |
| 22 platfom as possible. The resulting test coverage spans the cross platform API, |
| 23 common implementation, and platform specific implementation as close to |
| 24 operating system APIs as possible. |
| 25 |
| 26 `test/bluetooth_test.h` defines the cross platform test fixture |
| 27 `BluetoothTestBase`. Platform implementations provide subclasses, such as |
| 28 `test/bluetooth_test_android.h` and typedef to the name `BluetoothTest`. |
| 29 |
| 30 [More testing information](https://docs.google.com/document/d/1mBipxn1sJu6jMqP0R
QZpkYXC1o601bzLCpCxwTA2yGA/edit?usp=sharing) |
| 31 |
| 32 ## Legacy Platform Specific Unit Tests |
| 33 |
| 34 Early code (Classic on most platforms, and Low Energy on BlueZ) was tested with |
| 35 platform specific unit tests, e.g. `bluetooth_bluez_unittest.cc` & |
| 36 `bluetooth_adapter_win_unittest.cc`. The BlueZ style has platform specific |
| 37 methods to create fake devices and the public API is used to interact with them. |
| 38 |
| 39 Maintenance of these earlier implementation featuress should update tests in |
| 40 place. Long term these tests should be [refactored into cross platform |
| 41 tests](https://crbug.com/580403). |
| 42 |
| 43 |
| 44 ## Mock Bluetooth Objects |
| 45 |
| 46 `test/mock_bluetooth_*` files provide GoogleMock based fake objects for use in |
| 47 client code. |
| 48 |
| 49 |
| 50 ## Chrome OS Blueooth Controller Tests |
| 51 |
| 52 Bluetooth controller system tests generating radio signals are run and managed |
| 53 by the Chrome OS team. See: |
| 54 https://chromium.googlesource.com/chromiumos/third_party/autotest/+/master/serve
r/site_tests/ |
| 55 https://chromium.googlesource.com/chromiumos/third_party/autotest/+/master/serve
r/cros/bluetooth/ |
| 56 https://chromium.googlesource.com/chromiumos/third_party/autotest/+/master/clien
t/cros/bluetooth/ |
OLD | NEW |