aboutsummaryrefslogtreecommitdiffstats
path: root/android
diff options
context:
space:
mode:
authorJulien Desprez <jdesprez@google.com>2019-03-19 21:05:13 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-03-19 21:05:13 +0000
commit8c84e60f38999454b050e6a613431dd062bf418d (patch)
tree11e27e96a045dbf5a08140c176a387b3b605bcff /android
parent734879bc6a874a3797359e7e57d82963e1cc05e6 (diff)
parent9e7fc1407dfe1b111bc41db910d358a67047d6ca (diff)
downloadbuild_soong-8c84e60f38999454b050e6a613431dd062bf418d.tar.gz
build_soong-8c84e60f38999454b050e6a613431dd062bf418d.tar.bz2
build_soong-8c84e60f38999454b050e6a613431dd062bf418d.zip
Merge "Support test_suite and test_config with sh_test"
Diffstat (limited to 'android')
-rw-r--r--android/sh_binary.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/android/sh_binary.go b/android/sh_binary.go
index 52c5a9a3..8bb35178 100644
--- a/android/sh_binary.go
+++ b/android/sh_binary.go
@@ -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
+}