summaryrefslogtreecommitdiff
path: root/android/path_properties_test.go
AgeCommit message (Collapse)Author
2024-11-12Change GetModuleFromPathDep to use ModuleProxy. Yu Liu
Bug: 377723687 Test: Compare ninja and mk files generated. Change-Id: I428b0965b217adb20a792ebde88374e0c6fae9d6
2021-07-09Support customizing behavior around sourceOrOutputDependencyTag Paul Duffin
Previously, modules customized behavior around the handling of sourceOrOutputDependencyTag by comparing them to android.SourceDepTag and retrieving the module using something like this: ctx.GetDirectDepWithTag(m, android.SourceDepTag) The problem with that is it does not allow an output tag to be specified and does not handle fully qualified names properly. This adds the following: * IsSourceDepTag and IsSourceDepTagWithOutputTag to check whether a blueprint.DependencyTag is a sourceOrOutputDependencyTag. The latter also checks that it has the correct output tag. * GetModuleFromPathDep(ctx, moduleName, outputTag) as a replacement for ctx.GetDirectDepWithTag(m, android.SourceDepTag). Replaces usages of: * t == SourceDepTag with IsSourceDepTagWithOutputTag(t, "") * ctx.GetDirectDepWithTag(m, android.SourceDepTag) with GetModuleFromPathDep(ctx, m, "") It also deprecates the following: * android.SourcDepTag - as a follow up change needs to modify the sourceOrOutputDependencyTag will make this useless. * ExpandSources, ExpandsSources - copies existing deprecated messages from the implementation to the interface so that they can be seen by users of that interface. Bug: 193228441 Test: m nothing Change-Id: I8c397232b8d7dc1f9702c04ad45ea7819d4631ae
2021-03-22Remove uses of FixtureFactory from android package Paul Duffin
Bug: 183235980 Test: m nothing Change-Id: I72898ada020ee1a73fd534c61afb5c22fa00c1e5
2021-03-18Convert android/path_properties_test.go to test fixtures Paul Duffin
Bug: 182885307 Test: m nothing Change-Id: If75f471885b5e4022b406e267e04b7a20e0be080
2021-03-09Lineage properties support module references. Jaewoong Jung
They should have had `android:"path"` tags attached so that users can point them to filegroup modules. Test: app_test.go & app_import_test.go Bug: 182175153 Change-Id: I5580408488ffe5fc12c869cbfb7a468713dcbc96
2021-02-24android:path attribute is respected for fields in a slice of struct Jiyong Park
This change fixes a bug that android:path attribute is ignored when annotated field is in a slice of struct. blueprint now traverses fields whose type is slice of struct and provides the index list in the case. Soong is modified so that it checks whether the field being referenced is a slice of struct or not. If that is the case, it gathers field values from each of the elements. If not, it follows the original path. Bug: 181018147 Test: m nothing Change-Id: I220efb6feaa525a00939654459b2998e98e7ad56
2020-11-12Pass Config to NewTestContext instead of ctx.Register Colin Cross
Prepare for using Config when adding singletons by passing Config to NewTestContext and NewContext instead of to ctx.Register. This will enable a followup change to store SingletonMakeVarsProviders registered on the Context in the Config, which is necessary to run multiple tests in parallel without data races. Test: all soong tests Change-Id: Id229629a4e42ff4487d317241673837726c075fc
2020-10-09Revert "Make lots of tests run in parallel" Colin Cross
This reverts commit 323dc60712491c71ccdc5363c42df61f0a192487. Reason for revert: Possible cause of test instability Bug: 170513220 Test: soong tests Change-Id: Iee168e9fbb4210569e6cffcc23e60d111403abb8
2020-10-06Make lots of tests run in parallel Colin Cross
Putting t.Parallel() in each test makes them run in parallel. Additional t.Parallel() could be added to each subtest, although that requires making a local copy of the loop variable for table driven tests. Test: m checkbuild Change-Id: I5d9869ead441093f4d7c5757f2447385333a95a4
2019-12-18Move filesystem into Config Colin Cross
The filesystem object was available through ModuleContext.Fs(), but gives too much access to the filesystem without enforicing correct dependencies. In order to support sandboxing the soong_build process move the filesystem into the Config. The next change will make it private. Bug: 146437378 Test: all Soong tests Change-Id: I5d3ae9108f120fd335b21efd612aefa078378813
2019-11-25Make TestContext.RegisterModuleType take an android.ModuleFactory Colin Cross
Avoid having to pass ModuleFactoryAdaptor to every call to RegisterModuleType in a test by wrapping RegisterModuleType. Test: all soong tests Change-Id: If8847d16487de0479cc3020b728256922b3cadba
2019-07-16Dedup path properties across property structs Colin Cross
Listing a property in multiple property structs would cause it to add multiple dependencies with the same dependency tag, which would trip the panic in getDirectDepInternal when calling PathForModuleSrc. Dedup the properties with the android:"path" struct tag across all property structs. Test: path_properties_test.go Change-Id: Ib6c0e7789443d340ee7551721df0135c5ee64c0f
2019-07-03Remove ioutil.TempDir from each android/soong/android test Colin Cross
android_test.go already sets up a global buildDir, no need to create one in each test. Test: All soong tests Change-Id: Ib85cbf78c604ad3cef64aa00b6bd812a81496e9e
2019-06-04Support tagged module references Colin Cross
There are cases where a module needs to refer to an intermediate output of another module instead of its final output. For example, a module may want to use the .jar containing .class files from another module whose final output is a .jar containing classes.dex files. Support a new ":module{.tag}" format in any property that is annotated with `android:"path"`, which will query the target module for its ".tag" output(s). Test: path_properties_test.go, paths_test.go Test: no unexpected changes in build.ninja Change-Id: Icd3c9b0d83ff125771767c04046fcffb9fc3f65a
2019-03-18Don't add dependencies on modules referenced in unused arch variants Colin Cross
When extracting dependencies from properties tagged with `android:"path"`, only look at the general property structs and not the arch-specific ones. The necessary arch-specific values will be appended into the general property structs. Fixes: 128377112 Test: path_properties_test.go Change-Id: I35e35555d5b15473229a7458fcfc2c7dacaec889
2019-03-07Add path properties mutator Colin Cross
Add a mutator pass after DepsMutator that visits every property struct in every module looking for properties that have a tag `android:"path"`, and automatically add a SourceDepTag dependency on any module references (":module-name") found. Uses a cache to store the mapping of property struct type to locations of properties with the tag. Test: android/path_properties_test.go Change-Id: I38c0497843dde4890e9342c3a6f0b402c0720742