OSDN Git Service

android-x86/system-bt.git
4 years agoFix on device L2capTest
Hansong Zhang [Wed, 4 Mar 2020 21:57:03 +0000 (13:57 -0800)]
Fix on device L2capTest

* Synchronize between Queue callback context and module handler context
* Synchronize between Stop() and Queue callback context
* Fix DataPipelineManager channel registration logic with
  SignallingManager

Bug: 150174451
Test: cert/run --device
Change-Id: If58dcb5b0cc400f9c9ed1bbc6ec2c01de52789b2

4 years agoHCI: Synchronize ACL Queue
Hansong Zhang [Wed, 4 Mar 2020 21:52:20 +0000 (13:52 -0800)]
HCI: Synchronize ACL Queue

* Synchronize Queue registration with Module Handler and Stop()
* Synchronize UnregisterCompletedAclPacketsCallback() as this is invoked
  during Stop()
* Add a timeout in AclManagerFacade to prevent from deadlock

Bug: 150174451
Test: cert/run --device
Change-Id: I3a476af54aaa57e25a7fd51089b44954ae574dc6

4 years agoMinor improvements to Module, Reactor, StackManager
Hansong Zhang [Tue, 3 Mar 2020 23:05:34 +0000 (15:05 -0800)]
Minor improvements to Module, Reactor, StackManager

Add some logs. Fix the timeout in StackManager because some systems are
slow.

Test: bluetooth_test_gd
Change-Id: Idd3f0b14fd66dde250eadc84c1d5cad10664154d

4 years agoFix NeighborTest
Hansong Zhang [Tue, 3 Mar 2020 23:01:34 +0000 (15:01 -0800)]
Fix NeighborTest

Test: cert/run --host
Change-Id: I2c7296817e95cc2711360f310515afb1d4f7d909

4 years agoMerge "Cert: Do not use ANDROID_ build environment variables in test"
Treehugger Robot [Wed, 4 Mar 2020 05:11:36 +0000 (05:11 +0000)]
Merge "Cert: Do not use ANDROID_ build environment variables in test"

4 years agoMerge changes I099e53e6,Icab0e0d7,Ic8b73158,I989b35eb,Ie3bf7c90, ...
Zach Johnson [Wed, 4 Mar 2020 00:54:11 +0000 (00:54 +0000)]
Merge changes I099e53e6,Icab0e0d7,Ic8b73158,I989b35eb,Ie3bf7c90, ...

* changes:
  Assorted cleanup
  Simplify disconnect for cert channels
  Simplify sending information requests
  Add information response matchers
  Move dut & cert channels into return result
  Use multi-match in a few places where it makes sense
  Add function to send s_frames & clean up sending
  Rename L2capMatchers.InformationFrame & SupervisoryFrame
  Distingiush between validated and unvalidated channels open
  Simplify channel open, so it can fit on one line
  Migrate i frame sending into CertL2cap
  Start migrating to channel abstractions
  Make ertm & fcs separable, reduce redundant code
  Add function to simplify sending control packets

4 years agoCert: Do not use ANDROID_ build environment variables in test
Jack He [Tue, 3 Mar 2020 23:39:37 +0000 (15:39 -0800)]
Cert: Do not use ANDROID_ build environment variables in test

* Various environment variables should come from the build artifacts
  instead of the running environment.
* Hence getting rid of varioud usage of ANDROID_* variables in test
  files and figure them out through build artifacts
* Generate environment_provider.py at build time to provide
  build specific variables to the test at run time

Test: source cert/run
Bug: 150321998
Change-Id: I783c3784ad6018cb807a46701675fa5307e39175

4 years agoAssorted cleanup
Zach Johnson [Tue, 3 Mar 2020 21:54:34 +0000 (13:54 -0800)]
Assorted cleanup

Hide methods that are only used internally, remove unused ones, etc.

Test: cert/run --host --test_filter=L2capTest
Change-Id: I099e53e6b9f1d229fdc1ee14b30d66e27c2c7a09

4 years agoSimplify disconnect for cert channels
Zach Johnson [Tue, 3 Mar 2020 21:45:58 +0000 (13:45 -0800)]
Simplify disconnect for cert channels

Test: cert/run --host --test_filter=L2capTest
Change-Id: Icab0e0d7e356ae228c3125e452c93ad057be6074

4 years agoSimplify sending information requests
Zach Johnson [Tue, 3 Mar 2020 21:31:01 +0000 (13:31 -0800)]
Simplify sending information requests

Test: cert/run --host --test_filter=L2capTest
Change-Id: Ic8b731582ad2087922c18c06ad40e0319ae80b99

4 years agoAdd information response matchers
Zach Johnson [Tue, 3 Mar 2020 20:43:04 +0000 (12:43 -0800)]
Add information response matchers

Test: cert/run --host --test_filter=L2capTest
Change-Id: I989b35eb6ed05f1d845d332e238a44eb136f966a

4 years agoMove dut & cert channels into return result
Zach Johnson [Tue, 3 Mar 2020 19:59:43 +0000 (11:59 -0800)]
Move dut & cert channels into return result

Simplfies access in tests (no self. prefix) and
is also less like global variables.

Test: cert/run --host --test_filter=L2capTest
Change-Id: Ie3bf7c9039a6018f16a587dab542b3d8f88781cc

4 years agoUse multi-match in a few places where it makes sense
Zach Johnson [Tue, 3 Mar 2020 19:36:07 +0000 (11:36 -0800)]
Use multi-match in a few places where it makes sense

Test: cert/run --host --test_filter=L2capTest
Change-Id: I8fa955ef15c36d8b3c91c9a7d97289741d08fa96

4 years agoAdd function to send s_frames & clean up sending
Zach Johnson [Tue, 3 Mar 2020 19:25:37 +0000 (11:25 -0800)]
Add function to send s_frames & clean up sending

Test: cert/run --host --test_filter=L2capTest
Change-Id: I3bc7d2f0489a8a99febbc7bf746f355a2c77223d

4 years agoRename L2capMatchers.InformationFrame & SupervisoryFrame
Zach Johnson [Tue, 3 Mar 2020 19:02:26 +0000 (11:02 -0800)]
Rename L2capMatchers.InformationFrame & SupervisoryFrame

Use IFrame and SFrame, to match the sending functions on channel
Test: cert/run --host --test_filter=L2capTest

Change-Id: I4d75e59b570a32ad2d8005a1365156025b2f4416

4 years agoDistingiush between validated and unvalidated channels open
Zach Johnson [Tue, 3 Mar 2020 18:55:08 +0000 (10:55 -0800)]
Distingiush between validated and unvalidated channels open

Since the common case is a validated channel, push the response
validation into _open_channel so we don't need to repeat it
in the test function.

Create _open_unvalidated_channel, so tests that need to do
custom validation off the common path can do so.

Test: cert/run --host --test_filter=L2capTest
Change-Id: Ic4c7d74109c23486e0862b7eca38f62cb8469228

4 years agoQueue: Wait for unregistration if on different thread
Hansong Zhang [Tue, 3 Mar 2020 20:43:23 +0000 (12:43 -0800)]
Queue: Wait for unregistration if on different thread

Before Queue object is deleted, we must make sure that the enqueue or
dequeue callback isn't executing. If on same thread, callbacks are
synchronized. If on different thread, we must wait for unregistration to
synchronize callbacks.

Test: bluetooth_test_gd
Bug: 150174451
Change-Id: Id3c980aa0bf7bd9fa10c33c5cca3751df38f7d97

4 years agoFix RepeatingAlarmTest
Hansong Zhang [Tue, 3 Mar 2020 21:02:03 +0000 (13:02 -0800)]
Fix RepeatingAlarmTest

We may not be cancel the alarm within 1 millisecond for some machine.
Make it a bit longer.

Test: bluetooth_test_gd
Change-Id: Ia0eae89b8022d41281db55c152dbb748332f2dee

4 years agoSimplify channel open, so it can fit on one line
Zach Johnson [Tue, 3 Mar 2020 18:22:42 +0000 (10:22 -0800)]
Simplify channel open, so it can fit on one line

Test: cert/run --host --test_filter=L2capTest
Change-Id: I377a313008465b725991433158e5c828c8568cf3

4 years agoMigrate i frame sending into CertL2cap
Zach Johnson [Tue, 3 Mar 2020 17:32:01 +0000 (09:32 -0800)]
Migrate i frame sending into CertL2cap

Test: cert/run --host --test_filter=L2capTest
Change-Id: I4af9e1576741b77d8cd24aa4852ee868660be688

4 years agoMerge "Start CertL2cap, an abstraction to make L2cap testing simpler"
Treehugger Robot [Tue, 3 Mar 2020 17:05:41 +0000 (17:05 +0000)]
Merge "Start CertL2cap, an abstraction to make L2cap testing simpler"

4 years agoMerge "SecurityModule: Restructure L2CAP connections"
Treehugger Robot [Tue, 3 Mar 2020 07:41:24 +0000 (07:41 +0000)]
Merge "SecurityModule: Restructure L2CAP connections"

4 years agoMerge "User "return" instead of "exit" in shell scripts"
Treehugger Robot [Tue, 3 Mar 2020 06:30:14 +0000 (06:30 +0000)]
Merge "User "return" instead of "exit" in shell scripts"

4 years agoStart migrating to channel abstractions
Zach Johnson [Tue, 3 Mar 2020 04:30:36 +0000 (20:30 -0800)]
Start migrating to channel abstractions

Filter out packets by channel id, so matchers don't have to
know about them and tests can be clearer.

Test: cert/run --host --test_filter=L2capTest
Change-Id: Id2a749f3b3b543a8b5a9a17c8db16cb97f447a33

4 years agoMake ertm & fcs separable, reduce redundant code
Zach Johnson [Mon, 2 Mar 2020 22:49:22 +0000 (14:49 -0800)]
Make ertm & fcs separable, reduce redundant code

Test: cert/run --host --test_filter=L2capTest
Change-Id: I15a14ed794000e0fd9986ef4bfc73135a6d38e36

4 years agoAdd function to simplify sending control packets
Zach Johnson [Mon, 2 Mar 2020 22:41:18 +0000 (14:41 -0800)]
Add function to simplify sending control packets

Test: cert/run --host --test_filter=L2capTest
Change-Id: Id2e0d1221d31711d1170a6a438208cc565a88da7

4 years agoStart CertL2cap, an abstraction to make L2cap testing simpler
Zach Johnson [Mon, 2 Mar 2020 21:11:33 +0000 (13:11 -0800)]
Start CertL2cap, an abstraction to make L2cap testing simpler

Will contain all the l2cap logic, to make the test files
just the important, simple expression of tests rather than
all the support to run a layer.

Test: cert/run --host --test_filter=L2capTest
Change-Id: Ic880d3f936daccad37fb77521b9240028047ca44

4 years agoMerge changes Ib5197ec5,I9a155234
Treehugger Robot [Tue, 3 Mar 2020 03:42:00 +0000 (03:42 +0000)]
Merge changes Ib5197ec5,I9a155234

* changes:
  gd: pts test L2CAP/COS/CFD/BV-05-C
  gd: pts test L2CAP/COS/CFD/BV-02-C

4 years agoMerge "gd: pts test L2CAP/COS/CFD/BV-12-C"
Treehugger Robot [Tue, 3 Mar 2020 02:32:13 +0000 (02:32 +0000)]
Merge "gd: pts test L2CAP/COS/CFD/BV-12-C"

4 years agoUser "return" instead of "exit" in shell scripts
Jack He [Tue, 3 Mar 2020 01:31:44 +0000 (17:31 -0800)]
User "return" instead of "exit" in shell scripts

* Exit will cause the parent terminal to exit

Test: source cert/set_up_and_run_device_cert.sh --help
Change-Id: I07005a5a3d12f1c01429f7fb70946f2c39a942b9

4 years agoL2CAP: Minor fixes
Hansong Zhang [Tue, 3 Mar 2020 00:09:01 +0000 (16:09 -0800)]
L2CAP: Minor fixes

* Change some data member order to their correct dependency
* Use atomic_bool to indicate some queue registration state
* Synchronize DataController::OnSdu on L2cap Handler context

Bug: 150174451
Test: cert/run --host
Change-Id: Ifb1313c98267d4e47460e28b4ba167610203ba11

4 years agogd: pts test L2CAP/COS/CFD/BV-12-C
Chris Manton [Mon, 2 Mar 2020 22:26:58 +0000 (14:26 -0800)]
gd: pts test L2CAP/COS/CFD/BV-12-C

Bug: 150635625
Test: ./gd/cert/run --host --test_filter=L2capTest
Change-Id: I8341b3b6f8a6da0f142bad20b79f7495662d2ba6

4 years agogd: pts test L2CAP/COS/CFD/BV-05-C
Chris Manton [Mon, 2 Mar 2020 23:03:10 +0000 (15:03 -0800)]
gd: pts test L2CAP/COS/CFD/BV-05-C

Bug: 150637813
Test: ./gd/cert/run --host  --test_filter=L2capTest

Change-Id: Ib5197ec5a657d21bb78104ee4280ed6222995a46

4 years agogd: pts test L2CAP/COS/CFD/BV-02-C
Chris Manton [Mon, 2 Mar 2020 22:55:33 +0000 (14:55 -0800)]
gd: pts test L2CAP/COS/CFD/BV-02-C

Bug: 150638104
Test: ./gd/cert/run --host --test_filter=L2capTest
Change-Id: I9a15523474885ae2f1f7d1a77301613b5a4b8a9e

4 years agoModule: Increase StopTimeout to 2000 ms
Hansong Zhang [Mon, 2 Mar 2020 23:05:53 +0000 (15:05 -0800)]
Module: Increase StopTimeout to 2000 ms

We need to expect longer time, because we need to wait for Queue
unregistration (next patch) to be done during module shutdown

Bug: 150174451
Bug: 150054218
Test: bluetooth_test_gd
Change-Id: If8a45b2df2f2210884e0901029c151c80fab0684

4 years agoSecurityModule: Restructure L2CAP connections
Martin Brabham [Wed, 19 Feb 2020 01:01:02 +0000 (17:01 -0800)]
SecurityModule: Restructure L2CAP connections

Move L2CAP specifics for classic into the SecurityManagerChannel

Bug:
Test: bluetooth_test_gd --gtest_filter=ClassicPairingHandlerTest*
Change-Id: I5a891e560ed6a2f029bd0fcf22cdde419ea8a34c

4 years agoMerge changes Ib9f7e800,Ife714ad8,I9f73cf16,I6879d056,Ia180ec59, ...
Zach Johnson [Mon, 2 Mar 2020 22:22:39 +0000 (22:22 +0000)]
Merge changes Ib9f7e800,Ife714ad8,I9f73cf16,I6879d056,Ia180ec59, ...

* changes:
  Migrate remaining event stream asserts in L2capTest to truth
  Migrate information frames to matchers
  Migrate supervisory frame matching logic
  Replace a few more matchers
  Migrate connection response to L2capMatchers
  Start migrating l2cap packet matchers to their own file
  Fix config request/response order comments
  Replace hardcoded control packet handling with lookup table

4 years agoMerge "GD SMP: Fix logic error in picking dialog type"
Treehugger Robot [Mon, 2 Mar 2020 22:17:20 +0000 (22:17 +0000)]
Merge "GD SMP: Fix logic error in picking dialog type"

4 years agoMerge changes I5578a52e,I36446c92
Treehugger Robot [Mon, 2 Mar 2020 20:16:08 +0000 (20:16 +0000)]
Merge changes I5578a52e,I36446c92

* changes:
  Simplify packet parsing/filtering for L2capTest
  Replace direct usages of acl manager stream with acl link instead

4 years agoMerge changes Iafd263c7,I29300b6b,If8422986,Ied877cd6,If30d8ca4, ...
Treehugger Robot [Mon, 2 Mar 2020 20:15:58 +0000 (20:15 +0000)]
Merge changes Iafd263c7,I29300b6b,If8422986,Ied877cd6,If30d8ca4, ...

* changes:
  Register _handle_control_packet in a single place
  Migrate to use cert_acl instead of cert_acl_handle
  Remove cert_acl_data_stream from _open_channel, as it can be inferred
  Remove cert_acl_handle return value, as it was not really used
  Begin migrating L2capTest to use PyAclManager
  Begin PyL2cap, to make interfacing with l2cap facade easier
  Add Closable, to reduce repeated code
  Move captures & PyHci/PyAclManager to common cert
  Move common setup to setup_test & teardown_test
  Add IEventStream, so other subjects can use emit, etc
  Flesh out PyAclManager a little more
  Start PyAclManager, to simplify interaction with AclManager

4 years agoMerge "Add PyHciAclConnection"
Treehugger Robot [Mon, 2 Mar 2020 20:13:29 +0000 (20:13 +0000)]
Merge "Add PyHciAclConnection"

4 years agoMerge changes If61ab95a,Id9b7d89a
Treehugger Robot [Mon, 2 Mar 2020 20:13:21 +0000 (20:13 +0000)]
Merge changes If61ab95a,Id9b7d89a

* changes:
  Add PyHci helpers for page/scan and reading own address
  Add PyHci, to simplify interactions with HCI (not HCI_INTERFACES)

4 years agoGD SMP: Fix logic error in picking dialog type
Jakub Pawlowski [Mon, 2 Mar 2020 13:00:20 +0000 (14:00 +0100)]
GD SMP: Fix logic error in picking dialog type

Bug: 147086339
Change-Id: I0ccf793ec704370e6f0f36ebd8f8d73ed2941313

4 years agoMigrate remaining event stream asserts in L2capTest to truth
Zach Johnson [Mon, 2 Mar 2020 07:18:50 +0000 (23:18 -0800)]
Migrate remaining event stream asserts in L2capTest to truth

Test: cert/run --host
Change-Id: Ib9f7e8004aadc61ed9686240382443299357da1e

4 years agoMigrate information frames to matchers
Zach Johnson [Mon, 2 Mar 2020 06:37:19 +0000 (22:37 -0800)]
Migrate information frames to matchers

Test: cert/run --host --test_filter=L2capTest
Change-Id: Ife714ad8eedfdb960ecd515cfcee26e2f7873db9

4 years agoMigrate supervisory frame matching logic
Zach Johnson [Mon, 2 Mar 2020 06:20:24 +0000 (22:20 -0800)]
Migrate supervisory frame matching logic

By using matchers, we can use python named parameters
to express optionality, and improve simplicity & readability.

Test: cert/run --host --test_filter=L2capTest
Change-Id: I9f73cf1651172b7179a9963f9c07e865b126e426

4 years agoReplace a few more matchers
Zach Johnson [Mon, 2 Mar 2020 05:48:40 +0000 (21:48 -0800)]
Replace a few more matchers

Test: cert/run --host --test_filter=L2capTest
Change-Id: I6879d05699b406b9b0d1604199ce18e29d7b5d03

4 years agoMigrate connection response to L2capMatchers
Zach Johnson [Mon, 2 Mar 2020 05:40:57 +0000 (21:40 -0800)]
Migrate connection response to L2capMatchers

Test: cert/run --host --test_filter=L2capTest
Change-Id: Ia180ec59f94cd65621c19225600fceef455229bc

4 years agoStart migrating l2cap packet matchers to their own file
Zach Johnson [Mon, 2 Mar 2020 05:26:18 +0000 (21:26 -0800)]
Start migrating l2cap packet matchers to their own file

Test: cert/run --host --test_filter=L2capTest
Change-Id: Ia3aab45455042b10273a0741702faa7ea743c7b4

4 years agoSimplify packet parsing/filtering for L2capTest
Zach Johnson [Sun, 1 Mar 2020 07:47:45 +0000 (23:47 -0800)]
Simplify packet parsing/filtering for L2capTest

Test: cert/run --host --test_filter=L2capTest
Change-Id: I5578a52e89df4cf75a7ce7a330f0cca31610e093

4 years agoFix config request/response order comments
Zach Johnson [Mon, 2 Mar 2020 04:36:05 +0000 (20:36 -0800)]
Fix config request/response order comments

Test: cert/run --host --test_filter=L2capTest
Change-Id: I85837206a8a609d6d0b699eca7f3e1d181d24f51

4 years agoReplace hardcoded control packet handling with lookup table
Zach Johnson [Mon, 2 Mar 2020 04:21:33 +0000 (20:21 -0800)]
Replace hardcoded control packet handling with lookup table

Test: cert/run --host --test_filter=L2capTest
Change-Id: I086fd6c0ba775eca5414e64d430664b102c7b931

4 years agoReplace direct usages of acl manager stream with acl link instead
Zach Johnson [Sun, 1 Mar 2020 05:34:05 +0000 (21:34 -0800)]
Replace direct usages of acl manager stream with acl link instead

Also migrate some asserts to cert.truth

Test: cert/run --host --test_filter=L2capTest
Change-Id: I36446c92f5ea57807129b25322a2e5de3af50981

4 years agoRegister _handle_control_packet in a single place
Zach Johnson [Sun, 1 Mar 2020 05:23:10 +0000 (21:23 -0800)]
Register _handle_control_packet in a single place

No need for each test to register individually.

Test: cert/run --host --test_filter=L2capTest
Change-Id: Iafd263c78550b9eec4d2094b37ff4e7e8af6ef17

4 years agoMigrate to use cert_acl instead of cert_acl_handle
Zach Johnson [Sun, 1 Mar 2020 05:09:50 +0000 (21:09 -0800)]
Migrate to use cert_acl instead of cert_acl_handle

Test: cert/run --host --test_filter=L2capTest
Change-Id: I29300b6b2c3ebb67fd2dffb72c86d8a642a81b38

4 years agoRemove cert_acl_data_stream from _open_channel, as it can be inferred
Zach Johnson [Sun, 1 Mar 2020 04:54:18 +0000 (20:54 -0800)]
Remove cert_acl_data_stream from _open_channel, as it can be inferred

Test: cert/run --host --test_filter=L2capTest
Change-Id: If8422986ef6dd23b118659ff1732aeebe256a9e8

4 years agoRemove cert_acl_handle return value, as it was not really used
Zach Johnson [Sun, 1 Mar 2020 04:45:28 +0000 (20:45 -0800)]
Remove cert_acl_handle return value, as it was not really used

Test: cert/run --host --test_filter=L2capTest
Change-Id: Ied877cd6331ad229530d27d8830cef76053cc9ef

4 years agoBegin migrating L2capTest to use PyAclManager
Zach Johnson [Sun, 1 Mar 2020 04:30:04 +0000 (20:30 -0800)]
Begin migrating L2capTest to use PyAclManager

First step towards migrating the cert l2cap module to its own class.

Yes there are hacks - they will go away in a future change.

Test: cert/run --host --test_filter=L2capTest
Change-Id: If30d8ca405927eb43c1e520868b0a2862bf8d75b

4 years agoBegin PyL2cap, to make interfacing with l2cap facade easier
Zach Johnson [Sun, 1 Mar 2020 03:46:03 +0000 (19:46 -0800)]
Begin PyL2cap, to make interfacing with l2cap facade easier

Test: cert/run --host --test_filter=L2capTest
Change-Id: Ib614e1fa3cbca96607b6a1715243479b37a31b89

4 years agoAdd Closable, to reduce repeated code
Zach Johnson [Sun, 1 Mar 2020 03:19:45 +0000 (19:19 -0800)]
Add Closable, to reduce repeated code

Test: cert/run --host
Change-Id: Ia80f8e398fe4608ecd8d8a5e0b050681378ddf11

4 years agoMerge "Add function on hci to send commands (with status and with complete)"
Treehugger Robot [Sun, 1 Mar 2020 01:41:28 +0000 (01:41 +0000)]
Merge "Add function on hci to send commands (with status and with complete)"

4 years agoMerge "Mark updatable APEXes"
Jiyong Park [Sun, 1 Mar 2020 00:39:18 +0000 (00:39 +0000)]
Merge "Mark updatable APEXes"

4 years agoMerge "Cert: Add directory structure to genrule"
Treehugger Robot [Sun, 1 Mar 2020 00:26:25 +0000 (00:26 +0000)]
Merge "Cert: Add directory structure to genrule"

4 years agoMove captures & PyHci/PyAclManager to common cert
Zach Johnson [Sat, 29 Feb 2020 20:38:13 +0000 (12:38 -0800)]
Move captures & PyHci/PyAclManager to common cert

This way they can be used across tests.

Test: cert/run --host
Change-Id: I52c1ef1e9b24d2d143aa89a467a2eb535c8acb97

4 years agoMove common setup to setup_test & teardown_test
Zach Johnson [Sat, 29 Feb 2020 06:49:30 +0000 (22:49 -0800)]
Move common setup to setup_test & teardown_test

No need to repeat ourselves each time, and this saves
in indentation in the tests.

Test: cert/run --host
Change-Id: I909af4e8898344895b1234d27bbabc958d41f482

4 years agoAdd IEventStream, so other subjects can use emit, etc
Zach Johnson [Sat, 29 Feb 2020 06:34:08 +0000 (22:34 -0800)]
Add IEventStream, so other subjects can use emit, etc

And use in PyHci & PyAclManager. Can't quite turn on filtering
on the ACL messages, due to the handles being wrong.

Test: cert/run --host --test_filter=AclManagerTest
Change-Id: I30ef332b06ae553553757337cd66da91f8debe3a

4 years agoFlesh out PyAclManager a little more
Zach Johnson [Sat, 29 Feb 2020 05:47:53 +0000 (21:47 -0800)]
Flesh out PyAclManager a little more

Test: cert/run --host --test_filter=AclManagerTest
Change-Id: Ifad59da2bbac45b897547711d638d7bbca397372

4 years agoCert: Add directory structure to genrule
Jack He [Sat, 29 Feb 2020 05:40:40 +0000 (21:40 -0800)]
Cert: Add directory structure to genrule

* The generated Python directory need to overlap with the GD source
  directries for them to run together in one ACTS test
* Since both generated library and source library has Python modules
  with the same name, such as "cert", they must not have duplicate
  files for them to be imported in the same interpreter

Bug: 150321998
Test: source cert/run
Change-Id: I2bd4e3e9c3a5ec8d51e0bbba7f8a8a767f9ce866

4 years agoStart PyAclManager, to simplify interaction with AclManager
Zach Johnson [Sat, 29 Feb 2020 05:05:34 +0000 (21:05 -0800)]
Start PyAclManager, to simplify interaction with AclManager

Test: cert/run --host --test_filter=AclManagerTest
Change-Id: I336898fb439f5f48d87bdb735bae728164e4f6be

4 years agoAdd PyHciAclConnection
Zach Johnson [Sat, 29 Feb 2020 01:37:17 +0000 (17:37 -0800)]
Add PyHciAclConnection

Does not yet handle incoming data in an abstracted way.

Test: cert/run --host --test_filter=AclManagerTest
Change-Id: I68bbafdd65e5f76c8a368a5fd380634a4e93eaba

4 years agoAdd PyHci helpers for page/scan and reading own address
Zach Johnson [Sat, 29 Feb 2020 01:08:15 +0000 (17:08 -0800)]
Add PyHci helpers for page/scan and reading own address

Test: cert/run --host --test_filter=AclManagerTest
Change-Id: If61ab95a80f1a3f654ebf0fc9b63857c2b6b401d

4 years agoAdd PyHci, to simplify interactions with HCI (not HCI_INTERFACES)
Zach Johnson [Sat, 29 Feb 2020 00:59:04 +0000 (16:59 -0800)]
Add PyHci, to simplify interactions with HCI (not HCI_INTERFACES)

Test: cert/run --host --test_filter=AclManagerTest
Change-Id: Id9b7d89aba3369b32fa17759c912439ba43d37b3

4 years agoAdd function on hci to send commands (with status and with complete)
Zach Johnson [Sat, 29 Feb 2020 00:24:13 +0000 (16:24 -0800)]
Add function on hci to send commands (with status and with complete)

No need for tests to each have their own implementation.

Test: cert/run --host --test_filter=AclManagerTest
Change-Id: I3213367fa162cde1179a98cb3d1801850f01aa61

4 years agoAdd helper function on hci, to simplify hci event stream creation
Zach Johnson [Sat, 29 Feb 2020 00:10:08 +0000 (16:10 -0800)]
Add helper function on hci, to simplify hci event stream creation

Test: cert/run --host --test_filter=AclManagerTest
Change-Id: I0a0159eadc45dc54201ccea4b6167b059430de49

4 years agoAdd function to request multiple event types from hci
Zach Johnson [Fri, 28 Feb 2020 23:57:42 +0000 (15:57 -0800)]
Add function to request multiple event types from hci

Test: cert/run --host
Change-Id: I77788e0bbe536639627178a5d00f2a13eb91b208

4 years agoMerge changes I56018319,Id324c5b4,I73e50e6c
Zach Johnson [Fri, 28 Feb 2020 23:56:21 +0000 (23:56 +0000)]
Merge changes I56018319,Id324c5b4,I73e50e6c

* changes:
  Add captures, to clean up test logic and make tests easer to read
  Add multi-matcher assert on EventStream, and expose through truth
  Merge EventCallbackStream & EventAsserts into EventStream

4 years agoMerge "Add event stream to cert/truth, and start using in AclManagerTest"
Treehugger Robot [Fri, 28 Feb 2020 23:56:20 +0000 (23:56 +0000)]
Merge "Add event stream to cert/truth, and start using in AclManagerTest"

4 years agoMerge "Add a truth module, to make cert asserts more fluent"
Treehugger Robot [Fri, 28 Feb 2020 23:56:14 +0000 (23:56 +0000)]
Merge "Add a truth module, to make cert asserts more fluent"

4 years agoMerge "Register bond state change change callbacks in shim"
Treehugger Robot [Fri, 28 Feb 2020 22:48:11 +0000 (22:48 +0000)]
Merge "Register bond state change change callbacks in shim"

4 years agoMerge "ModuleRegistry: Delete Module after all are stopped"
Treehugger Robot [Fri, 28 Feb 2020 22:36:39 +0000 (22:36 +0000)]
Merge "ModuleRegistry: Delete Module after all are stopped"

4 years agoMerge "gd: l2cap Skip undefined options when parsing"
Treehugger Robot [Fri, 28 Feb 2020 22:30:01 +0000 (22:30 +0000)]
Merge "gd: l2cap Skip undefined options when parsing"

4 years agoAdd captures, to clean up test logic and make tests easer to read
Zach Johnson [Fri, 28 Feb 2020 06:23:40 +0000 (22:23 -0800)]
Add captures, to clean up test logic and make tests easer to read

Test: cert/run --host
Change-Id: I560183190070bdb032960ea0b43da8ea6b8b4ffd

4 years agoAdd multi-matcher assert on EventStream, and expose through truth
Zach Johnson [Fri, 28 Feb 2020 05:27:21 +0000 (21:27 -0800)]
Add multi-matcher assert on EventStream, and expose through truth

Test: cert/run --host --test_filter=CertSelfTest
Change-Id: Id324c5b47dd988c7d6f2597b67dba17614026ca0

4 years agoMerge EventCallbackStream & EventAsserts into EventStream
Zach Johnson [Fri, 28 Feb 2020 04:09:06 +0000 (20:09 -0800)]
Merge EventCallbackStream & EventAsserts into EventStream

Simplifies testing logic a bit, support for multi-independent asserts
will come in a later patch, on EventStream.

Test: cert/run --host
Change-Id: I73e50e6c843cda0d8dbe69de5ced768efcd354e0

4 years agoAdd event stream to cert/truth, and start using in AclManagerTest
Zach Johnson [Thu, 27 Feb 2020 00:24:54 +0000 (16:24 -0800)]
Add event stream to cert/truth, and start using in AclManagerTest

Makes tests more fluent, and paves the way to more complex stream assertions
in the future.

Test: cert/run --host
Change-Id: I5f2b125da34ae4d72a24f4a13a612910ae732d54

4 years agoAdd a truth module, to make cert asserts more fluent
Zach Johnson [Wed, 26 Feb 2020 23:49:02 +0000 (15:49 -0800)]
Add a truth module, to make cert asserts more fluent

More to come, with event streams.

Test: cert/run --host
Change-Id: Ie4a750c24990e9d848c673cde482ae8af71a39de

4 years agogd: l2cap Skip undefined options when parsing
Chris Manton [Wed, 26 Feb 2020 19:59:56 +0000 (11:59 -0800)]
gd: l2cap Skip undefined options when parsing

Bug: 150426178
Test: bluetooth_test_gd
Change-Id: I3017c0c04e4799dfe99e01c7440bdc9915a15222

4 years agoModuleRegistry: Delete Module after all are stopped
Hansong Zhang [Fri, 28 Feb 2020 00:44:11 +0000 (16:44 -0800)]
ModuleRegistry: Delete Module after all are stopped

If a Module is stopped, it may still receive callback from lower level
Module, because the callback may have already been in lower level
Module's Handler queue. Instead of deleting the stopped Module
immediately, wait until all Modules are stopped.

Bug: 150174451
Test: bluetooth_test_gd
Change-Id: I0b55fe0ac7da09332d381d2192235339a9dc23fa

4 years agoL2capTest: Fix cert device name
Hansong Zhang [Thu, 27 Feb 2020 22:24:12 +0000 (14:24 -0800)]
L2capTest: Fix cert device name

Bug: 150174451
Test: cert/run --host
Change-Id: I14ed2ccc3b5bc58a545adfeaa3670c8828ff1b2f

4 years agoRegister bond state change change callbacks in shim
Jakub Pawlowski [Fri, 28 Feb 2020 17:01:03 +0000 (18:01 +0100)]
Register bond state change change callbacks in shim

Without notifying bond success/failure, Settings will keep displaying
the pairing notification forever.

Bug: 147086339
Test: attempt to bond with remote device, cancel from remote
Change-Id: I55dfc35d35955a07973d20ade36cc9ec99c58a24

4 years agoSome simplifications to ControllerTest
Zach Johnson [Wed, 26 Feb 2020 22:23:30 +0000 (14:23 -0800)]
Some simplifications to ControllerTest

Test: cert/run --host --test_filter=ControllerTest
Change-Id: I75de2d62ebe38ebe5942d7ab3d430303f4da61b3

4 years agoMerge "Wire Security UI callback for pin entry cases"
Treehugger Robot [Fri, 28 Feb 2020 03:03:29 +0000 (03:03 +0000)]
Merge "Wire Security UI callback for pin entry cases"

4 years agoMerge "SM: Fix cert test"
Treehugger Robot [Thu, 27 Feb 2020 23:26:29 +0000 (23:26 +0000)]
Merge "SM: Fix cert test"

4 years agoWire Security UI callback for pin entry cases
Jakub Pawlowski [Wed, 26 Feb 2020 13:24:10 +0000 (14:24 +0100)]
Wire Security UI callback for pin entry cases

Bug: 147086339
Change-Id: Ia15b0c95bff59010bb65da23eab4a02bd36834c3

4 years agoFix logic bug in shim
Greg Kaiser [Thu, 27 Feb 2020 14:31:05 +0000 (06:31 -0800)]
Fix logic bug in shim

We want to check the BLE mask constant against the device_type
variable.  Checking the make constant against itself was always
true.

Test: TreeHugger
Change-Id: Ifb157a4779b40210c3340439c2a6da30e276aa6a

4 years agoWire Security UI callbacks
Jakub Pawlowski [Wed, 26 Feb 2020 13:24:10 +0000 (14:24 +0100)]
Wire Security UI callbacks

Bug: 147086339
Change-Id: I719459314dd33d922a575126b74ee133f8ac2289

4 years agoSM: Fix cert test
Martin Brabham [Wed, 26 Feb 2020 22:32:10 +0000 (14:32 -0800)]
SM: Fix cert test

Bug: 145638034
Test: ./cert/run_cert_facade_only.sh
Change-Id: I68214d6dc80455b6993fcc839071aa5c6eb18a85

4 years agoMerge changes I29072204,Ica71783b
Treehugger Robot [Thu, 27 Feb 2020 02:13:45 +0000 (02:13 +0000)]
Merge changes I29072204,Ica71783b

* changes:
  Rename device_under_test and cert_device, to simpler more consistent names
  Simplify cert test setup

4 years agoMerge "Simplify running cert tests and allow filtering, auto build"
Treehugger Robot [Thu, 27 Feb 2020 02:03:23 +0000 (02:03 +0000)]
Merge "Simplify running cert tests and allow filtering, auto build"

4 years agoMark updatable APEXes
Jiyong Park [Mon, 24 Feb 2020 09:39:19 +0000 (18:39 +0900)]
Mark updatable APEXes

Mark updatable APEXes as updatable: true so that they are opted-out from
optimizations that make sense only for non-updatable modules; such as
symlinking to the libs in the system partition.

Bug: 149805758
Test: m and check that there is no symlink from the APEX to the system
partition.

Exempt-From-Owner-Approval: cherry-pick from internal

Merged-In: Id21fa176acce4800fb8e6c723007f6a4aa2d1bab
(cherry picked from commit f3d123910b4c899b3aed8d82272fa5d24b6dc426)
Change-Id: Id21fa176acce4800fb8e6c723007f6a4aa2d1bab