platform_build_soong/scripts
Ronald Braunstein fce431652d Test_Module_Config soong implementation
New soong module type `TestModuleConfig`

This module type allows to write:
   test_module_config {
    name: "DerivedFrameworks1",
    base: "FrameworksServicesTests",
    include_filters: ["com.android.server.accessibility.FingerprintGestureDispatcherTest"],
  }

This goal is to put the test options (include_fitler in this case) in
Android.bp rather than TEST_MAPPING to be able to name a set of options
and to allow the CI to more precise about which part of a TestModule
might be failing.
In general, it is recommended to split up tests rather than use this
approach, but that isn't always feasible.

More details on project here:  https://docs.google.com/document/d/1MpA4BS6mTr-1D-K9MVmzdHkSufAvIkkM4gPEUglNodk/edit?tab=t.0
Migration plan here: https://docs.google.com/document/d/1x3w-BvKO3E-GbY8YOSBuzJC6-pkLkuhfjSyZ1hJQBYM/edit?tab=t.0

Some details of final output:

   * All the [data] files from Derived are the same as base.
   * The apk names is changed to be the Module name
   * The test options are added to .config file
   * test-file-name in the .config file (for base.apk) is changed to be
     new apk.
   * module-info.json is hand inspected between base and derived.
   * I added a .manifest file so future tools know what base is, if they
     need it.

We are working a mechanism to use a CAS so the zip of the testcases
won't explode. (however the trident disk image will get bigger)

% tree -ls out/target/product/shiba/testcases/DerivedFrameworks1 out/target/product/shiba/testcases/FrameworksServicesTests
[       4096]  out/target/product/shiba/testcases/DerivedFrameworks1
├── [       4096]  arm64
│   └── [   72346281]  DerivedFrameworks1.apk
├── [      20887]  BstatsTestApp.apk
├── [       4096]  data
│   └── [        851]  broken_shortcut.xml
├── [       3157]  DerivedFrameworks1.config
├── [      12695]  JobTestApp.apk
├── [       8599]  MediaButtonReceiverHolderTestHelperApp.apk
├── [      16791]  SimpleServiceTestApp1.apk
├── [      16791]  SimpleServiceTestApp2.apk
├── [      16791]  SimpleServiceTestApp3.apk
├── [    1017540]  SuspendTestApp.apk
└── [         36]  test_module_config.manifest

[       4096]  out/target/product/shiba/testcases/FrameworksServicesTests
├── [       4096]  arm64
│   └── [   72346281]  FrameworksServicesTests.apk
├── [      20887]  BstatsTestApp.apk
├── [       4096]  data
│   └── [        851]  broken_shortcut.xml
├── [       2866]  FrameworksServicesTests.config
├── [      12695]  JobTestApp.apk
├── [       8599]  MediaButtonReceiverHolderTestHelperApp.apk
├── [      16791]  SimpleServiceTestApp1.apk
├── [      16791]  SimpleServiceTestApp2.apk
├── [      16791]  SimpleServiceTestApp3.apk
└── [    1017540]  SuspendTestApp.apk

Fixes: 314148134
Test: atest DerivedFrameworks1 DerivedFrameworks2
Test: m blueprint_tests
Change-Id: Ib73a3404557e0bd583b065f0cf2fd55fba9ccdbe
2024-03-06 00:38:56 +00:00
..
check_boot_jars Add java.util.random to the allowed package list. 2023-10-31 16:05:52 +00:00
hiddenapi Allow obfuscated classes on bootclasspath 2023-01-18 12:59:23 +00:00
Android.bp Determine GC type based on BUILT_KERNEL_VERSION_FILE. 2024-02-02 09:23:37 +08:00
archive_repack.sh
build-apex-bundle.py Add a host tool to create an APEX bundle 2022-09-21 13:27:49 +09:00
build-ndk-prebuilts.sh ndk: Hard-code the TARGET_RELEASE 2023-11-09 12:43:38 -07:00
build-rustdocs.sh rust: doc: Zip up docs when done 2021-08-20 13:08:16 -07:00
build_broken_logs.go Reformat build/soong for go 1.19 2022-08-17 10:43:13 -07:00
check_do_not_merge.sh
check_prebuilt_presigned_apk.py Error out if skip_preprocessed_apk_checks is set when it's not necessary 2023-09-06 16:11:44 -07:00
construct_context.py Move CLC construction to Ninja phase. 2023-05-30 15:46:38 +01:00
construct_context_test.py Move CLC construction to Ninja phase. 2023-05-30 15:46:38 +01:00
construct_uffd_gc_flag.py Determine GC type based on BUILT_KERNEL_VERSION_FILE. 2024-02-02 09:23:37 +08:00
conv_linker_config.py Deprecate 'contributions' field from linkerconfig 2023-11-08 13:38:36 +09:00
conv_linker_config_test.py Add tests for conv_linker_config 2023-03-09 07:46:25 +00:00
diff_build_graphs.sh Fix location of host tools 2021-11-05 14:10:01 -07:00
freeze-sysprop-api-files.sh
gen-java-current-api-files.sh
gen-kotlin-build-file.py
gen-sysprop-api-files.sh
gen_java_usedby_apex.sh Java used-by API list generation 2021-12-14 14:52:58 -08:00
gen_ndk_backedby_apex.sh Save all the detected native shared library backing by mainline modules. 2021-10-19 14:33:57 -07:00
gen_ndk_usedby_apex.sh bazel apex: clean up gen_ndk_usedby_apex.sh to work in bazel sandbox. 2022-11-07 08:38:01 +00:00
get_clang_version.py [get_clang_version] Make the version regex permissive 2021-10-06 09:44:15 -07:00
get_clang_version_test.py [scripts] Add script to print clang prebuilts version 2021-06-25 11:57:16 -07:00
jar-args.sh
jar-wrapper.sh
jars-to-module-info-java.sh
jsonmodify.py Merge changes Ibcf908d9,I786ab152 2022-07-12 13:07:28 +00:00
jsonmodify_test.py Adding support to conditionally replace a value 2022-07-12 11:53:07 +01:00
keep-flagged-apis.sh Introduce script and module to pass aconfig flags to metalava 2023-12-27 19:31:51 +00:00
lint_project_xml.py Simplify strict updatability linting error message 2024-01-17 17:11:51 -08:00
lint_project_xml_test.py Add lint_project_xml_test.py 2021-04-20 11:04:51 -07:00
list_image.sh Recursively list Android image contents. 2022-04-20 20:02:11 -07:00
manifest.py Convert soong scripts to python 3 2021-11-10 13:49:27 -08:00
manifest_check.py Fix manifest_check.py for generated manifests that have no application tag 2023-10-06 13:24:38 -07:00
manifest_check_test.py Apply pylint to scripts/manifest_check*.py 2021-09-08 03:59:40 +00:00
manifest_fixer.py Overriding placeholder version in updatable apks 2022-08-03 12:05:14 +01:00
manifest_fixer_test.py Overriding placeholder version in updatable apks 2022-08-03 12:05:14 +01:00
microfactory.bash Add prebuilts/ to microfactory includes 2022-10-19 11:11:45 -04:00
modify_permissions_allowlist.py Add script for modifying privapp permission allowlists 2023-05-02 15:10:16 -04:00
modify_permissions_allowlist_test.py Add script for modifying privapp permission allowlists 2023-05-02 15:10:16 -04:00
ninja_rsp.py
package-check.sh Fix script for package check to work on macOS 2021-10-04 15:29:06 +00:00
reverse-deps.sh Account for "validations:" 2021-11-23 12:12:06 -08:00
run-ckati.sh Run ckati step of the Android build tracing given variables 2023-01-04 10:08:43 -08:00
run-soong-tests-with-go-tools.sh Don't set CC and CXX when running go build on mac 2024-01-19 19:32:56 +00:00
rustfmt.toml Update rustfmt.toml to 2021 edition 2022-02-10 16:55:01 +11:00
setup-android-build.sh
setup_go_workspace_for_soong.sh Upgrade to golang protobuf api v2 2021-07-23 11:12:05 -07:00
strip.sh Build native libraries used by layoutlib. 2023-12-12 05:06:20 +00:00
system-clang-format
system-clang-format-2
test_config_fixer.py Test_Module_Config soong implementation 2024-03-06 00:38:56 +00:00
test_config_fixer_test.py Allow android tests to specify a mainline package name 2023-02-08 12:38:50 -08:00
toc.sh Fix toc.sh, llvm-nm does not recognise '-f P' option 2021-04-03 03:21:24 +08:00
transitive-deps.sh Account for "validations:" 2021-11-23 12:12:06 -08:00
uffd_gc_utils.py Determine GC type based on BUILT_KERNEL_VERSION_FILE. 2024-02-02 09:23:37 +08:00
uffd_gc_utils_test.py Determine GC type based on BUILT_KERNEL_VERSION_FILE. 2024-02-02 09:23:37 +08:00
unpack-prebuilt-apex.sh Fix the number of required parameters in deapexer script. 2023-07-14 17:26:13 +00:00
update_out A script to update the file contents with the command output. 2021-11-18 15:15:45 -08:00