summaryrefslogtreecommitdiff
path: root/sh/sh_binary.go
AgeCommit message (Collapse)Author
2025-03-14Merge "Set LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG on sh_test" into main Treehugger Robot
2025-03-14Set LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG on sh_test Cole Faust
If auto_generate_test_config is false. Without this line, soong is not autogenerating a test config, but make still is. And the make-autogenerated test config file is invalid, it has a {EXTRA_TEST_RUNNER_CONFIGS} placeholder in it that's only replaced in soong code, not make code. Bug: 388850000 Test: m device-tests Change-Id: I8b2686fa68996d58ef4f5769047ff9ec418eaca5
2025-03-13Change CommonModuleInfoProvider to a pointer. Yu Liu
Bug: 358427516 Test: Manually verified genereated ninja and mk files, unit tests. Change-Id: I53a6dd718232735decbeb93febfd269dd9449e86
2025-03-11Expand TestSuiteInfoProvider to all test modules Cole Faust
Test suites have been historically only defined in the AndroidMk functions. But in soong-only builds, we don't run AndroidMk. It appears Colin already started making a TestSuiteInfo provider, but hadn't set it on all test modules yet. Expand it to all the test modules, and add export it to make so that make can check that it matches LOCAL_COMPATIBILITY_SUITES. Bug: 388850000 Test: m nothing Change-Id: Iee8959742117604fd560c95be60f3cb7cf3d9ae4
2025-03-07Rename CommonModuleInfoKey to be consistent with others. Yu Liu
Bug: 377723687 Test: Unit tests and compare the ninja and mk files generated. Change-Id: I1ce8bc782666586633ded9cfaf1b9590e3c0efde
2025-02-28Add ModuleInfoJSON for sh_binary mrziwang
Test: CI Bug: 388850000 Change-Id: I1c316f04e17f920565b98dfacd967e34b0ba4d86
2025-02-21Merge "Implement host_common_data property for cc, java, rust and sh test ↵ Colin Cross
modules" into main
2025-02-19Merge "Change depVisitor to use providers instead of type-asserting to ↵ Yu Liu
interfaces directly, the next step is to change it to use ModuleProxy once IsDepInSameApex is ready." into main
2025-02-19Convert sh_test_host modules' module-info.json to Soong Bill Yang
Bug: 397158845 Test: m out/target/product/vsoc_x86_64/module-info.json Test: Inspect module-info.json diff, CI Change-Id: Ib98a4850189b57f77d18d0aaa2ab91e1690ec965
2025-02-19Change depVisitor to use providers instead of type-asserting to Yu Liu
interfaces directly, the next step is to change it to use ModuleProxy once IsDepInSameApex is ready. Bug: 377723687 Test: Unit tests and compare the ninja and mk files generated. Change-Id: I13a4e256a26dbf7f9b3b746d628ac8f68b4e598e
2025-02-18Implement host_common_data property for cc, java, rust and sh test modules Colin Cross
Implement the host_common_data property that will copy a host common module into the test data directory. This property can be used to copy a custom Tradefed test runner jar alongside the test. Bug: 262397555 Test: TestHostCommonData Change-Id: Iacef0778254a3dda400c9e221f442c47d8db7b02
2025-01-23Convert container and sh_binary to use ModuleProxy. Yu Liu
Bug: 377723687 Test: Unit tests and compare the ninja and mk files generated. Change-Id: Ie2d9d91deebacd8fa0504e628b59ec254f839738
2024-12-18Remove source_file_provider.go after it's last usage was removed. Yu Liu
Bug: 377723687 Test: Unit tests and compare the ninja and mk files generated. Change-Id: Iff10448dc4dda49e1f02258a4c113db75778a95d
2024-11-13Use fewer OutputPaths Cole Faust
A lot of the time, you really mean android.Path or android.WriteablePath instead of OutputPath. Also, many modules were holding onto OutputPaths/WriteablePaths after the files had already been generated, meaning they should no longer be treated as writable paths and are instead inputs into other actions. Change the type of those paths to just android.Path. Test: verified ninja files were unchanged on aosp_arm64-trunk_staging-userdebug Change-Id: Id773171bef59d855ba33c4b85cef268031cbec39
2024-11-07test_module_config for sh_test Ronald Braunstein
[retry reverted 45dca5c8cc538392edbde4ee1077fc86509b2e38 after rebase] Implemented test_module_config for sh_tests. There are some shell tests that have 130 cc_binaries and they get duplicated in the vts .zip. test_module_config allows deduping for lowmem and hwasan use cases freeing a 1 G in the zip. Moved some of the knowledge about constructing the make rules back to the provider. I haven't tried this for cc_test or rust_test, but I think it will be similar to sh_test if we ever need it. There is currently only one usecase for using test_module_config with sh_test (and none for cc_ or rust_) Also added "extra_test_configs" to sh_test Sample bp file. test_module_config { name: "vts_ltp_tmc", base: "vts_ltp_test_x86_64", test_suites: [ "general-tests", "vts" ], options: [ {name: "is-low-mem", value: "false"}, {name: "is-hwasan", value: "true"}, ], } Test: go test ./ Test: m vts_ltp_test_x86_64_hwasan Test: atest vts_ltp_test_x86_64_hwasan Test: m vts # inspect the zip for symlinks Test: CtsAppTestCases_android_server_am Test: atest -c -v vts_ltp_test_x86_64:vts_ltp_test_x86_64_hwa Change-Id: I208797f97e3448bcff7434630adfd7476fc275f9
2024-11-07Revert "test_module_config for sh_test" Liana Kazanova
This reverts commit 45dca5c8cc538392edbde4ee1077fc86509b2e38. Reason for revert: DroidMonitor: Potential culprit for http://b/377964351 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted. Change-Id: Idd5e4b0d04b3c04dc1cfc4541615fc5f42a85c3e
2024-11-06test_module_config for sh_test Ronald Braunstein
Implemented test_module_config for sh_tests. There are some shell tests that have 130 cc_binaries and they get duplicated in the vts .zip. test_module_config allows deduping for lowmem and hwasan use cases freeing a 1 G in the zip. Moved some of the knowledge about constructing the make rules back to the provider. I haven't tried this for cc_test or rust_test, but I think it will be similar to sh_test if we ever need it. There is currently only one usecase for using test_module_config with sh_test (and none for cc_ or rust_) Also added "extra_test_configs" to sh_test Sample bp file. test_module_config { name: "vts_ltp_tmc", base: "vts_ltp_test_x86_64", test_suites: [ "general-tests", "vts" ], options: [ {name: "is-low-mem", value: "false"}, {name: "is-hwasan", value: "true"}, ], } Test: go test ./ Test: m vts_ltp_test_x86_64_hwasan Test: atest vts_ltp_test_x86_64_hwasan Test: m vts # inspect the zip for symlinks Test: CtsAppTestCases_android_server_am Test: atest -c -v vts_ltp_test_x86_64:vts_ltp_test_x86_64_hwa Change-Id: I5a36d798fd21180d653d09e54f40449a0ebcbd29
2024-10-29Add defaults for sh_ rules. Ronald Braunstein
I was helping someone who wanted to use the same set of dependencies in multiple sh_test rules and we realized that there are no defaults on sh_test, sh_binary, etc. (see vts_ltp_test*) Bug: 277261121 # Related to this bug Change-Id: I81084771432e22e3de230511bdaba1b79a171406 Test: go test ./
2024-10-24Remove testing package Cole Faust
The testing package defined test_spec and code_metadata module types, but they were never used and the owner left google. Bug: 372091092 Test: Presubmits Change-Id: I2d34ce173ec46483719a1d333180937b3da1fa04
2024-10-22Merge "Add new properties to aid in removing the 1-variant fallback" into main Cole Faust
2024-10-21Make ImageInterface use its own context Cole Faust
In a followup cl, the ImageInterface will be queried during incoming transitions, which have a more limited context. Make a dedicated ImageInterfaceContext so we can have more control about what functions we expose. Bug: 372091092 Test: m nothing --no-skip-soong-tests Change-Id: Idb320352433cda4b0467226599295056ec47025d
2024-10-21Add new properties to aid in removing the 1-variant fallback Cole Faust
These new properties are essentially methods to specify "outgoing transitions" in blueprint files. There are lots of host tests that want to include apps built for device in their data, so they need a property that adds dependencies based on the device variants instead of copying the same host variants. After this cl is submitted, I'll do an LSC to update all the usages that are relying on the 1-variant fallback to use these properties instead. Bug: 372091092 Test: m nothing --no-skip-soong-tests Change-Id: I45b8fb024da120ad61606e3a21de86e4392be2a4
2024-06-21Move vendor and product variant generation logic from cc package to android ↵ Jihoon Kang
package Although image variation generation logic has moved out of cc package to the android package, the vendor and product partition variants generation logic is still specific to cc package. Therefore, in order to create a product or vendor variant, they have to specified in `ExtraImageVariants`. In order to avoid such confusing behaviors and enforce modules to specify product and vendor installation rules, this change moves the vendor and product variant generation logic to android.ImageInterface. Test: m nothing --no-skip-soong-tests && diff contents of out/soong/Android-{product}.mk Change-Id: I9e14f3739d9dea94167ee6a91e92b2f942055aba
2024-06-13Cleanup ImageInterface.SetImageVariation Jihoon Kang
This change modifies the interface method of ImageInterface.SetImageVariation so that the image variation is set directly at the caller image variation module, instead of passing the pointer to set the image variation. Test: m nothing Change-Id: I8eadb5149365530243e19a8cd37eb49d335fbeef
2024-06-13Modify the installation rules of sh binary based on the image variants Jihoon Kang
This change modifes the build rules of sh binary module type so that: - The installation paths respects the image variations and the *_available properties. - The androidmk entries have subnames so that the names of the different variants do not collide. Test: Patch ag/27004177 and run m nothing Bug: 336582138 Change-Id: Id85c428980ab459bff8d84098bd6c501a12231ed
2024-06-10Use OutputFilesProvider on sh_binary mrziwang
In the context of incremental soong, the output files inter-module-communication will be through OutputFilesProvider. The OutputFileProducer interface will be deprecated. Test: CI Bug: 339477385 Change-Id: I77929210f4ee2d83d110bca1391edc54be69f0db
2024-04-05Deprecate Snapshot build Kiyoung Kim
Existing snapshot code will no longer work from VNDK deprecation, but it can give confusion to users if we keep code for the snapshot - and it adds complexity on existing code while it is not in use. This change removes all snapshot definition except host snapshot and its usage. Bug: 330100430 Bug: 332986564 Test: AOSP CF build succeeded Change-Id: Ieb6fa43d5e38315c662ce997bc305b744b367c24
2023-12-14Convert SetProvider to generic providers API Colin Cross
Convert all of the callers of SetProvider to use the type-safe android.SetProvider API. Bug: 316410648 Test: builds Change-Id: If58f4b5355264ddab2045bc3591a4eac19cd58fc
2023-12-08Remove ConvertWithBp2build implementations Colin Cross
Remove the ConvertWithBp2build implementations from all the module types, along with the related code. Bug: 315353489 Test: m blueprint_tests Change-Id: I212672286686a318893bc7348ddd5a5ec51e77a7
2023-12-05Add source file provider for genrule/srcs, python libraries and rust libraries. Aditya Choudhary
Change-Id: I2d7d4684a10c15aeecc27b8db800ab27a807d2e2
2023-11-30Move test data installation to Soong Colin Cross
To generate module-info.json in Soong for b/309006256 Soong needs to know the test data paths. Moving test data installation into Soong will also help later for test suite packaging. Add ModuleContext.InstallTestData that installs the files listed in a []DataPath alongside the test. The files will also be passed to Make to allow it to continue packaging them into the test suites for now. Update the module types that are producing LOCAL_TEST_DATA entries in their Android.mk files to go through InstallTestData instead. Bug: 311428265 Test: atest --host toybox-gtests --test-timeout=120000 Change-Id: Ia8b964f86e584ea464667fd86a48d754d118bead
2023-11-15Add proto for Test ownership metadata. Aditya Choudhary
This Cl adds a new rule to Soong to generate test spec metadata. Also, this CL adds a provider in various test module to provide test spec related data to the Soong rule. Will add providers and test code to other Module in the future changes. Provider added for the following test modules in this change: android_robolectric_test, android_test, bootclasspath_fragment_test, java_test, java_test_host, python_test, python_test_host, sh_test,and sh_test_host. Bug: 296873595 Change-Id: I5f89f72d5874bb7838ae357efdb8c6ca208e18a7
2023-10-10Update sh_test conversion to handle data_bins and test_configs properly Jason Wu
sh_test.data_bins are used to mark special executable dependencies which should be installed alongside the test entry point's cwd as siblings. This change makes it such that the Tradefed rule places them at the expected location. In addition, this change also incorporates the `tradefed.TestConfigAttributes` to handle the test_configs conversions. Test: bp2build.sh Bug: 283486885 Change-Id: Ifeb049c13ae208c785dbdc858f589be8f21109d1
2023-09-20Have ConvertWBp2build use Bp2buildMutatorContext Chris Parsons
This no-op refactoring facilitates some upcoming functional changes for "bp2build allowlist v2". The work requires that the bp2build conversion mutator be changed from a TopDown mutator to a BottomUp mutator. Refactoring all bp2build-related methods so that they use Bp2buildMutatorContext makes it easier to make this functional change without touching tens of files and multiple projects. Bug: 285631638 Test: m bp2build Change-Id: I3d1ef3064146e959c6f0dc315350fc9764bf2bd2
2023-09-13sh_binary: Implement OutputFileProducer for sh_test Edward Liaw
When added as a data dependency, the output of sh_test does not get included. It needs to define OutputFiles in order to implement the OutputFileProducer interface. Bug: 293944582 Test: N/A Change-Id: Ic27741ed584523f5e1efd7caa8b872fe50cce381 Signed-off-by: Edward Liaw <edliaw@google.com>
2023-08-24Support java_data in sh_test_host Makoto Onuki
Bug: 297225342 Test: with a custom test rule Test: cd sh && go test ./... (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:de5d265a798ce0e12ad0a2d0a6675942df5cd10b) Merged-In: Ia5a60fa6d917f2c2fde56df543625024ec11877a Change-Id: Ia5a60fa6d917f2c2fde56df543625024ec11877a
2023-08-22bp2build converter for sh_test followup Jason Wu
Test: m nothing Bug: 283486885 Change-Id: Ib8229e75dfcd9fd251fb1a83485cf5f88bdc3afb
2023-04-28Prevent sh_test from migrating as sh_binary Liz Kammer
Test: CI Change-Id: I4cb789e3f1351fcb1635d58b72c265eac4bf62d8
2023-01-03Allow adding extra tradefed options in the Android.bp file Cole Faust
Some tests need to add custom tradefed options, but still want to keep most of the soong autogenerated tradefed xml file. Expose a test_options: { tradefed_options: [...] } property that will allow tests to add more options to the autogenerated xml file. Fixes: 184895128 Test: go test, and verified that the ninja files did not change for aosp_arm64 Change-Id: I50d4ad139322e9e207202f1e1a50f5bbb424aa6f
2022-12-19Revert "Allow adding extra tradefed options in the Android.bp file" Tahsin Loqman
This reverts commit 8ec823cba166a41eb0e9e5ff8fe679e691fec678. Reason for revert: DroidMonitor: Potential culprit for Bug b/262965953 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted. Change-Id: I236cc36981d8b30527ca286632727f8ca267e969
2022-12-09Allow adding extra tradefed options in the Android.bp file Cole Faust
Some tests need to add custom tradefed options, but still want to keep most of the soong autogenerated tradefed xml file. Expose a test_options: { tradefed_options: [...] } property that will allow tests to add more options to the autogenerated xml file. Fixes: 184895128 Test: go test, and verified that the ninja files did not change for aosp_arm64 Change-Id: I75f7eb002c8325ce7cdc76e12e76e16195320620
2022-08-17Move common test_options properties into the android package Zhenhuang Wang
Multiple modules (e.g. java, cc, python, rust) define the `test_options` field. Extract the common properties in test_options to share across different test rules. Bug: 240928948 Test: `refreshmod` and diff with original module-info.json Change-Id: I404a7a157b4ccaa53d800ee2217559ff695bd825
2022-05-13Clean up some bp2build technical debt Liz Kammer
Previously we ran mutators in bp2build mode to add dependencies, now we look up modules by name directly. Remove workarounds to allow bp2build mode to not fail when adding/handling dependencies. Test: m bp2build Change-Id: Ibf6fd905150cac306e5c395902ef28f609f4df2a
2022-02-22sh_test: Support per-testcase directories Jooyung Han
Similar to cfb0f5e102e2a4a946c4f6e38d429b132ed11fc5 Bug: n/a Test: add a new CTS sh_test_host module with duplicate 'data'; Change-Id: Ie7d183bb5703d616d61d7dcb7c8b44502de429bb
2022-02-17Propagate data_bins from Soong to Make yangbill
Write the list of a test module's data_bins value to the `LOCAL_TEST_DATA_BINS` Makefile variable defined for each module. This enables downstream tools to correctly set up the runtime environment for execution. And currently only sh_test, cc_tests, and rust_tests has this attribute in Android.bp. Bug: 215234071 Test: m out/soong/Android-aosp_cf_x86_64_phone.mk Change-Id: I8d47f5f9b25afdc5975c6b414405badb38dbde4b
2022-01-12Support installable property Sundong Ahn
Support not installing sh_binary when installable property is false Bug: 205065320 Test: m -j Change-Id: I71a0fd24e8867d6cb2527ecdacc775253f12c9f8
2021-12-21sh_binary: Use pointers for optional attributes Liz Kammer
Empty strings for filename and sub_dir were unnecessicarily always being propagated to BUILD files. Test: build/bazel/ci/bp2build.sh Change-Id: I39d6af12b1decd1d3813b92daa862ebc025daa7d
2021-12-15Remove InstallBypassMake and ToMakePath Colin Cross
InstallBypassMake and ToMakePath are obsolete, remove them. Bug: 204136549 Test: m checkbuild Change-Id: Ie5a6f7254b3d317ed6039e114ed6aec35e1ce273
2021-12-14Use one mutator for all bp2build conversion. Liz Kammer
Each conversion required defining a separate mutator, which will each operate on _all_ modules and requires each to repeat checks whether the mutator should operator. Instead, we introduce a single mutator and modules can define a ConvertWithBp2build to implement bp2build conversion for that module. Test: bp2build.sh Bug: 183079158 Change-Id: I99d4b51f441c2903879092c5b56313d606d4338d
2021-12-02Support filename and sub_dir attributes in sh_binary Yu Liu
Test: test by building system/timezone/apex:com.android.tzdata Change-Id: I08114910fccbdacf6750e237d3e80ba37fde7651