diff options
author | Julien Desprez <jdesprez@google.com> | 2019-03-19 21:05:13 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-03-19 21:05:13 +0000 |
commit | 8c84e60f38999454b050e6a613431dd062bf418d (patch) | |
tree | 11e27e96a045dbf5a08140c176a387b3b605bcff /android | |
parent | 734879bc6a874a3797359e7e57d82963e1cc05e6 (diff) | |
parent | 9e7fc1407dfe1b111bc41db910d358a67047d6ca (diff) | |
download | build_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.go | 37 |
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 +} |