f216af5653
Now the derived modules will have symlink's to base's testcase dir rather than copyfile files from base's intermediates dir. I also removed storing the "base" module as dependency and only use data from the provider in GenerateAndroidBuildActions and AndroidMkEntries. I did have to add two fields to the provider for this. To ensure the symlinks always resolve to a physical file, I also added goals such that building `derived-target` will also build `build-target` Create new Make variable: LOCAL_SOONG_INSTALLED_COMPATIBILITY_SUPPORT_FILES for tasks/general-tests.mk,device-tests.mk to read. This allows "support" files that are installed with soong rules rather than make rules to still end up in the zips. Sample dir structure: % tree -ls testcases aosp_cf_x86_64_phone[4:31:54]/0 [ 4096] testcases ├── [ 4096] FrameworksServicesTests │ ├── [ 4096] data │ │ └── [ 851] broken_shortcut.xml │ ├── [ 2800] FrameworksServicesTests.config │ ├── [ 12695] JobTestApp.apk │ ├── [ 8599] MediaButtonReceiverHolderTestHelperApp.apk │ ├── [ 16791] SimpleServiceTestApp1.apk │ ├── [ 16791] SimpleServiceTestApp2.apk │ ├── [ 16791] SimpleServiceTestApp3.apk │ ├── [ 1017763] SuspendTestApp.apk │ └── [ 4096] x86_64 │ └── [ 79827767] FrameworksServicesTests.apk └── [ 4096] FrameworksServicesTests_contentprotection ├── [ 4096] data │ └── [ 54] broken_shortcut.xml -> ../../FrameworksServicesTests/data/broken_shortcut.xml ├── [ 3005] FrameworksServicesTests_contentprotection.config ├── [ 41] JobTestApp.apk -> ../FrameworksServicesTests/JobTestApp.apk ├── [ 69] MediaButtonReceiverHolderTestHelperApp.apk -> ../FrameworksServicesTests/MediaButtonReceiverHolderTestHelperApp.apk ├── [ 52] SimpleServiceTestApp1.apk -> ../FrameworksServicesTests/SimpleServiceTestApp1.apk ├── [ 52] SimpleServiceTestApp2.apk -> ../FrameworksServicesTests/SimpleServiceTestApp2.apk ├── [ 52] SimpleServiceTestApp3.apk -> ../FrameworksServicesTests/SimpleServiceTestApp3.apk ├── [ 45] SuspendTestApp.apk -> ../FrameworksServicesTests/SuspendTestApp.apk ├── [ 36] test_module_config.manifest └── [ 4096] x86_64 ├── [ 64] FrameworksServicesTests.apk -> ../../FrameworksServicesTests/x86_64/FrameworksServicesTests.apk └── [ 36] UNUSED-FrameworksServicesTests.apk Test: m clean && atest FrameworksServicesTests_contentprotection Test: m clean && atest CtsDevicePolicyManagerTestCases_ParentProfileApiDisabled Bug: b/332320956 Change-Id: I8466f253fa559bc74cef4533edf263650e96bbfb
33 lines
1.1 KiB
Go
33 lines
1.1 KiB
Go
package tradefed
|
|
|
|
import (
|
|
"android/soong/android"
|
|
|
|
"github.com/google/blueprint"
|
|
)
|
|
|
|
// Data that test_module_config[_host] modules types will need from
|
|
// their dependencies to write out build rules and AndroidMkEntries.
|
|
type BaseTestProviderData struct {
|
|
// data files and apps for android_test
|
|
InstalledFiles android.Paths
|
|
// apk for android_test
|
|
OutputFile android.Path
|
|
// Either handwritten or generated TF xml.
|
|
TestConfig android.Path
|
|
// Other modules we require to be installed to run tests. We expect base to build them.
|
|
HostRequiredModuleNames []string
|
|
RequiredModuleNames []string
|
|
// List of test suites base uses.
|
|
TestSuites []string
|
|
// True indicates the base modules is built for Host.
|
|
IsHost bool
|
|
// Base's sdk version for AndroidMkEntries, generally only used for Host modules.
|
|
LocalSdkVersion string
|
|
// Base's certificate for AndroidMkEntries, generally only used for device modules.
|
|
LocalCertificate string
|
|
// Indicates if the base module was a unit test.
|
|
IsUnitTest bool
|
|
}
|
|
|
|
var BaseTestProviderKey = blueprint.NewProvider[BaseTestProviderData]()
|