From 46f66059e9de5d81882021cf7e50466ee1fec46f Mon Sep 17 00:00:00 2001 From: Justin Yun Date: Tue, 4 May 2021 18:42:24 +0900 Subject: [PATCH] Define test_min_vndk_version for cc_test If a cc_test module defines test_options.test_min_vndk_version, the test runs only if the ro.vndk.version of the device is defined as a version code name or an integer value that is higher than or equal to the value in the test_min_vndk_version proprety. Also, move the existing test_min_api_level property to test_options struct. Bug: 186786268 Bug: 187258404 Test: manual test Change-Id: I43f1cca5b60f102298726332d374e4b14c425948 --- cc/test.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/cc/test.go b/cc/test.go index 9b77e45da..d4c23d7bf 100644 --- a/cc/test.go +++ b/cc/test.go @@ -46,6 +46,14 @@ type TestOptions struct { // If the test is a hostside(no device required) unittest that shall be run during presubmit check. Unit_test *bool + + // Add ShippingApiLevelModuleController to auto generated test config. If the device properties + // for the shipping api level is less than the test_min_api_level, skip this module. + Test_min_api_level *int64 + + // Add MinApiLevelModuleController with ro.vndk.version property. If ro.vndk.version has an + // integer value and the value is less than the test_min_vndk_version, skip this module. + Test_min_vndk_version *int64 } type TestBinaryProperties struct { @@ -89,6 +97,7 @@ type TestBinaryProperties struct { // Add ShippingApiLevelModuleController to auto generated test config. If the device properties // for the shipping api level is less than the test_min_api_level, skip this module. + // Deprecated (b/187258404). Use test_options.test_min_api_level instead. Test_min_api_level *int64 // Flag to indicate whether or not to create test config automatically. If AndroidTest.xml @@ -395,11 +404,22 @@ func (test *testBinary) install(ctx ModuleContext, file android.Path) { for _, tag := range test.Properties.Test_options.Test_suite_tag { configs = append(configs, tradefed.Option{Name: "test-suite-tag", Value: tag}) } - if test.Properties.Test_min_api_level != nil { + if test.Properties.Test_options.Test_min_api_level != nil { + var options []tradefed.Option + options = append(options, tradefed.Option{Name: "min-api-level", Value: strconv.FormatInt(int64(*test.Properties.Test_options.Test_min_api_level), 10)}) + configs = append(configs, tradefed.Object{"module_controller", "com.android.tradefed.testtype.suite.module.ShippingApiLevelModuleController", options}) + } else if test.Properties.Test_min_api_level != nil { + // TODO: (b/187258404) Remove test.Properties.Test_min_api_level var options []tradefed.Option options = append(options, tradefed.Option{Name: "min-api-level", Value: strconv.FormatInt(int64(*test.Properties.Test_min_api_level), 10)}) configs = append(configs, tradefed.Object{"module_controller", "com.android.tradefed.testtype.suite.module.ShippingApiLevelModuleController", options}) } + if test.Properties.Test_options.Test_min_vndk_version != nil { + var options []tradefed.Option + options = append(options, tradefed.Option{Name: "min-api-level", Value: strconv.FormatInt(int64(*test.Properties.Test_options.Test_min_vndk_version), 10)}) + options = append(options, tradefed.Option{Name: "api-level-prop", Value: "ro.vndk.version"}) + configs = append(configs, tradefed.Object{"module_controller", "com.android.tradefed.testtype.suite.module.MinApiLevelModuleController", options}) + } test.testConfig = tradefed.AutoGenNativeTestConfig(ctx, test.Properties.Test_config, test.Properties.Test_config_template, test.Properties.Test_suites, configs, test.Properties.Auto_gen_config, testInstallBase)