android_packages_modules_Co.../Tethering
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Lorenzo Colitti 6748e62ef2 Add unit tests for race conditions in upstream selection.
In the current tethering code, upstream selection is only
triggered by CONNECTIVITY_ACTION. But in automatic mode, the
upstream network is selected by listening to a NetworkCallback
that tracks the default network.

This causes a race where if the CONNECTIVITY_ACTION for a network
switch is received and processed before the callbacks for that
network switch, upstream selection just re-selects the upstream
currently in use.

Make it possible to test this by giving TestConnectivityManager
the ability to choose the ordering between NetworkCallbacks and
CONNECTIVITY_ACTION, and to run an arbitrary Runnable between
calling one and calling the other. TetheringTest passes a
Runnable that calls mLooper.dispatchAll(), which ensures that
the tethering code fully processes the first set of information
it receives (either the broadcast (or the callbacks) before
receiving any more information.

Add test coverage to testAutomaticUpstreamSelection that
exercises various orderings, and make the test pass by expecting
the buggy behaviour of the current code.

An upcoming CL will fix the bug and update the tests.

Bug: 173068192
Test: test-only change
Change-Id: I7805444dcf59f6d5f8517fbcf2f2b1641783d50b
2021-04-05 14:51:53 +09:00
..
apex Add ServiceConnectivityResources to in-process APEX 2021-03-14 12:33:30 +09:00
apishim [NFCT.TETHER.15] Attach BPF program in the mainline module 2021-03-11 17:49:42 +08:00
bpf_progs bpf_progs - remove unused dependencies 2021-03-19 03:39:42 +00:00
common/TetheringLib Add dependency on system API in connectivity 2021-02-26 19:36:06 +09:00
jni [NFCT.TETHER.15] Attach BPF program in the mainline module 2021-03-11 17:49:42 +08:00
res wifi: Add bridged pre-fix for tethering interface 2021-01-18 01:21:32 +00:00
src Dump the input destination MAC address for IPv4 flows. 2021-04-02 05:42:22 +00:00
tests Add unit tests for race conditions in upstream selection. 2021-04-05 14:51:53 +09:00
Android.bp Update sources of Tethering module since it is renamed 2021-03-11 07:36:55 +00:00
AndroidManifest.xml Update language to comply with Android's inclusive language guidance 2020-07-29 12:05:04 +08:00
AndroidManifest_InProcess.xml Change tethering file structure to respect its package name 2020-04-14 14:33:45 +08:00
AndroidManifestBase.xml Add usesCleartextTraffic to Tethering 2020-08-18 09:00:58 +00:00
jarjar-rules.txt Update sources of Tethering module since it is renamed 2021-03-11 07:36:55 +00:00
OWNERS Revert "Add OWNERS block to prevent the tree from mooving during migration." 2020-10-31 04:50:11 +00:00
proguard.flags Provide a easy way to access bpf maps from java 2021-01-11 17:43:27 +08:00
TEST_MAPPING Move TetheringTests to presubmit 2020-06-10 02:33:37 +00:00