Merge "Add unit_test test option in test configs"

This commit is contained in:
Dan Shi 2020-11-18 04:40:37 +00:00 committed by Gerrit Code Review
commit ebb51503a4
9 changed files with 39 additions and 0 deletions

View File

@ -214,6 +214,8 @@ func init() {
"LOCAL_PRIVATE_PLATFORM_APIS": "platform_apis", "LOCAL_PRIVATE_PLATFORM_APIS": "platform_apis",
"LOCAL_JETIFIER_ENABLED": "jetifier", "LOCAL_JETIFIER_ENABLED": "jetifier",
"LOCAL_IS_UNIT_TEST": "unit_test",
}) })
} }

View File

@ -370,6 +370,9 @@ func (test *testBinary) AndroidMkEntries(ctx AndroidMkContext, entries *android.
entries.SetBool("LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG", true) entries.SetBool("LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG", true)
} }
entries.AddStrings("LOCAL_TEST_MAINLINE_MODULES", test.Properties.Test_mainline_modules...) entries.AddStrings("LOCAL_TEST_MAINLINE_MODULES", test.Properties.Test_mainline_modules...)
if Bool(test.Properties.Test_options.Unit_test) {
entries.SetBool("LOCAL_IS_UNIT_TEST", true)
}
}) })
androidMkWriteTestData(test.data, ctx, entries) androidMkWriteTestData(test.data, ctx, entries)

View File

@ -46,6 +46,9 @@ type TestOptions struct {
// a list of extra test configuration files that should be installed with the module. // a list of extra test configuration files that should be installed with the module.
Extra_test_configs []string `android:"path,arch_variant"` Extra_test_configs []string `android:"path,arch_variant"`
// If the test is a hostside(no device required) unittest that shall be run during presubmit check.
Unit_test *bool
} }
type TestBinaryProperties struct { type TestBinaryProperties struct {

View File

@ -160,6 +160,9 @@ func (j *Test) AndroidMkEntries() []android.AndroidMkEntries {
entries.SetString("LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG", "true") entries.SetString("LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG", "true")
} }
entries.AddStrings("LOCAL_TEST_MAINLINE_MODULES", j.testProperties.Test_mainline_modules...) entries.AddStrings("LOCAL_TEST_MAINLINE_MODULES", j.testProperties.Test_mainline_modules...)
if Bool(j.testProperties.Test_options.Unit_test) {
entries.SetBool("LOCAL_IS_UNIT_TEST", true)
}
}) })
return entriesList return entriesList

View File

@ -2226,6 +2226,9 @@ func LibraryHostFactory() android.Module {
type TestOptions struct { type TestOptions struct {
// a list of extra test configuration files that should be installed with the module. // a list of extra test configuration files that should be installed with the module.
Extra_test_configs []string `android:"path,arch_variant"` Extra_test_configs []string `android:"path,arch_variant"`
// If the test is a hostside(no device required) unittest that shall be run during presubmit check.
Unit_test *bool
} }
type testProperties struct { type testProperties struct {

View File

@ -80,6 +80,10 @@ func (p *testDecorator) AndroidMk(base *Module, ret *android.AndroidMkData) {
fmt.Fprintln(w, "LOCAL_TEST_DATA :=", fmt.Fprintln(w, "LOCAL_TEST_DATA :=",
strings.Join(android.AndroidMkDataPaths(p.data), " ")) strings.Join(android.AndroidMkDataPaths(p.data), " "))
} }
if Bool(p.testProperties.Test_options.Unit_test) {
fmt.Fprintln(w, "LOCAL_IS_UNIT_TEST := true")
}
}) })
base.subAndroidMk(ret, p.binaryDecorator.pythonInstaller) base.subAndroidMk(ret, p.binaryDecorator.pythonInstaller)
} }

View File

@ -26,6 +26,12 @@ func init() {
android.RegisterModuleType("python_test", PythonTestFactory) android.RegisterModuleType("python_test", PythonTestFactory)
} }
// Test option struct.
type TestOptions struct {
// If the test is a hostside(no device required) unittest that shall be run during presubmit check.
Unit_test *bool
}
type TestProperties struct { type TestProperties struct {
// the name of the test configuration (for example "AndroidTest.xml") that should be // the name of the test configuration (for example "AndroidTest.xml") that should be
// installed with the module. // installed with the module.
@ -38,6 +44,9 @@ type TestProperties struct {
// list of files or filegroup modules that provide data that should be installed alongside // list of files or filegroup modules that provide data that should be installed alongside
// the test // the test
Data []string `android:"path,arch_variant"` Data []string `android:"path,arch_variant"`
// Test options.
Test_options TestOptions
} }
type testDecorator struct { type testDecorator struct {

View File

@ -116,6 +116,9 @@ func (test *testDecorator) AndroidMk(ctx AndroidMkContext, ret *android.AndroidM
if !BoolDefault(test.Properties.Auto_gen_config, true) { if !BoolDefault(test.Properties.Auto_gen_config, true) {
fmt.Fprintln(w, "LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG := true") fmt.Fprintln(w, "LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG := true")
} }
if Bool(test.Properties.Test_options.Unit_test) {
fmt.Fprintln(w, "LOCAL_IS_UNIT_TEST := true")
}
}) })
// TODO(chh): add test data with androidMkWriteTestData(test.data, ctx, ret) // TODO(chh): add test data with androidMkWriteTestData(test.data, ctx, ret)
} }

View File

@ -19,6 +19,12 @@ import (
"android/soong/tradefed" "android/soong/tradefed"
) )
// Test option struct.
type TestOptions struct {
// If the test is a hostside(no device required) unittest that shall be run during presubmit check.
Unit_test *bool
}
type TestProperties struct { type TestProperties struct {
// Disables the creation of a test-specific directory when used with // Disables the creation of a test-specific directory when used with
// relative_install_path. Useful if several tests need to be in the same // relative_install_path. Useful if several tests need to be in the same
@ -44,6 +50,9 @@ type TestProperties struct {
// if set, build with the standard Rust test harness. Defaults to true. // if set, build with the standard Rust test harness. Defaults to true.
Test_harness *bool Test_harness *bool
// Test options.
Test_options TestOptions
} }
// A test module is a binary module with extra --test compiler flag // A test module is a binary module with extra --test compiler flag