Merge "Support test_suite and test_config with sh_test"

This commit is contained in:
Julien Desprez
2019-03-19 21:05:13 +00:00
committed by Gerrit Code Review

View File

@@ -17,6 +17,7 @@ package android
import ( import (
"fmt" "fmt"
"io" "io"
"strings"
) )
// sh_binary is for shell scripts (and batch files) that are installed as // sh_binary is for shell scripts (and batch files) that are installed as
@@ -28,6 +29,7 @@ import (
func init() { func init() {
RegisterModuleType("sh_binary", ShBinaryFactory) RegisterModuleType("sh_binary", ShBinaryFactory)
RegisterModuleType("sh_binary_host", ShBinaryHostFactory) RegisterModuleType("sh_binary_host", ShBinaryHostFactory)
RegisterModuleType("sh_test", ShTestFactory)
} }
type shBinaryProperties struct { type shBinaryProperties struct {
@@ -48,6 +50,16 @@ type shBinaryProperties struct {
Installable *bool 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 { type ShBinary struct {
ModuleBase ModuleBase
@@ -57,6 +69,12 @@ type ShBinary struct {
outputFilePath OutputPath outputFilePath OutputPath
} }
type ShTest struct {
ShBinary
testProperties TestProperties
}
func (s *ShBinary) DepsMutator(ctx BottomUpMutatorContext) { func (s *ShBinary) DepsMutator(ctx BottomUpMutatorContext) {
if s.properties.Src == nil { if s.properties.Src == nil {
ctx.PropertyErrorf("src", "missing prebuilt source file") 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) { func InitShBinaryModule(s *ShBinary) {
s.AddProperties(&s.properties) s.AddProperties(&s.properties)
} }
@@ -140,3 +168,12 @@ func ShBinaryHostFactory() Module {
InitAndroidArchModule(module, HostSupported, MultilibFirst) InitAndroidArchModule(module, HostSupported, MultilibFirst)
return module return module
} }
func ShTestFactory() Module {
module := &ShTest{}
InitShBinaryModule(&module.ShBinary)
module.AddProperties(&module.testProperties)
InitAndroidArchModule(module, HostAndDeviceSupported, MultilibFirst)
return module
}