Merge "Support test_suite and test_config with sh_test" am: 8c84e60f38 am: 542c4cb03f

am: e0036d8b4a

Change-Id: I886eff6faa96a8ce6c1f90a1ec24a75612660522
This commit is contained in:
Julien Desprez 2019-03-19 14:20:30 -07:00 committed by android-build-merger
commit 2af7d4edd4

View file

@ -17,6 +17,7 @@ package android
import (
"fmt"
"io"
"strings"
)
// sh_binary is for shell scripts (and batch files) that are installed as
@ -28,6 +29,7 @@ import (
func init() {
RegisterModuleType("sh_binary", ShBinaryFactory)
RegisterModuleType("sh_binary_host", ShBinaryHostFactory)
RegisterModuleType("sh_test", ShTestFactory)
}
type shBinaryProperties struct {
@ -48,6 +50,16 @@ type shBinaryProperties struct {
Installable *bool
}
type TestProperties struct {
// list of compatibility suites (for example "cts", "vts") that the module should be
// installed into.
Test_suites []string `android:"arch_variant"`
// the name of the test configuration (for example "AndroidTest.xml") that should be
// installed with the module.
Test_config *string `android:"arch_variant"`
}
type ShBinary struct {
ModuleBase
@ -57,6 +69,12 @@ type ShBinary struct {
outputFilePath OutputPath
}
type ShTest struct {
ShBinary
testProperties TestProperties
}
func (s *ShBinary) DepsMutator(ctx BottomUpMutatorContext) {
if s.properties.Src == nil {
ctx.PropertyErrorf("src", "missing prebuilt source file")
@ -119,6 +137,16 @@ func (s *ShBinary) AndroidMk() AndroidMkData {
}
}
func (s *ShTest) AndroidMk() AndroidMkData {
data := s.ShBinary.AndroidMk()
data.Extra = append(data.Extra, func(w io.Writer, outputFile Path) {
fmt.Fprintln(w, "LOCAL_COMPATIBILITY_SUITE :=",
strings.Join(s.testProperties.Test_suites, " "))
fmt.Fprintln(w, "LOCAL_TEST_CONFIG :=", String(s.testProperties.Test_config))
})
return data
}
func InitShBinaryModule(s *ShBinary) {
s.AddProperties(&s.properties)
}
@ -140,3 +168,12 @@ func ShBinaryHostFactory() Module {
InitAndroidArchModule(module, HostSupported, MultilibFirst)
return module
}
func ShTestFactory() Module {
module := &ShTest{}
InitShBinaryModule(&module.ShBinary)
module.AddProperties(&module.testProperties)
InitAndroidArchModule(module, HostAndDeviceSupported, MultilibFirst)
return module
}