Merge "Support test_suite and test_config with sh_test"
This commit is contained in:
@@ -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
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user