tree d3f86295dd08bfee8368c2625000c852b54df77b
parent f824197c243a9dc2f059c4cfbe8e9ac29e104c53
author Ronald Braunstein <rbraunstein@google.com> 1726168387 +0000
committer Ronald Braunstein <rbraunstein@google.com> 1726370116 +0000

Batch migration of frameworks/base TEST_MAPPING to test_module_config modules

As part of go/test-module-config we are moving test options from
TEST_MAPPING -> Android.bp files.

In previous Cls, we created the new `test_module_config` rules in
Android.bp

This is updating the TEST_MAPPING file to use those rules.
It is also removing "FlakyTest and IgnoreTest" exclude annoations as
they are now added in gcl files per run rather than ad-hoc per module.

I have a script that looks at the generated tradefed config file for the
new options added in Android.bp files, then it looks at TEST_MAPPING
files and find the places to update where the options match for the
test.

I am also doing abtd runs of each TEST_MAPPING file before and after my
change and ensuring the number of tests run is the same (or at least as
many). There are cases where tradefed would comping include-filters
across TEST_MAPPING entries for the same module, but now they will be
purposefully split up, causing some tests to be run under two different
modules.

Flag: TEST_ONLY
Test: Ran adbt on each TEST_MAPPING and compared before and after
results.  Verified we were still running all the tests we were before.
i.e. after the adbt run, I would download the test artfiact for the
tradefed detailed evenvt and compare test counts.
You can see CtsAppTestCases became CtsAppTestCases_cts_requesttileserviceaddtest, etc.
I'm not including results for all 100 TEST_MAPPING files, but I did
verify with scripts and eyes.
Minor differences (like 2011 vs 2009) on a test that didn't change are
ignored, but in general there were more tests run, not fewer.

	% diff <(grep started frameworks_base_services_core_java_com_android_server_statusbar_TEST_MAPPING/BASE.details) <(grep started frameworks_base_services_core_java_com_android_server_statusbar_TEST_MAPPING/NEW.details) | grep run
	<     [run x86_64 CtsAppTestCases (testCount: 6,attempt: 0) started]
	>     [run x86_64 CtsAppTestCases_cts_requesttileserviceaddtest (testCount: 6,attempt: 0) started]
	<     [run x86_64 CtsLocationFineTestCases (testCount: 96,attempt: 0) started]
	>     [run x86_64 CtsLocationFineTestCases_android_server_location (testCount: 96,attempt: 0) started]
	<     [run x86_64 FrameworksNetTests (testCount: 2009,attempt: 0) started]
	>     [run x86_64 FrameworksNetTests (testCount: 2011,attempt: 0) started]

Test-Mapping-Slo-Bypass-Bug: b/335015078
Change-Id: If6e3cd0624ac1c16f1cd088566d967769f47199c
