Support 'test_config' into soong modules
Test: make general-tests
Bug: 110982517
Change-Id: Ib2eab2653fdfce6f699b85c9fbc64558b6d40363
diff --git a/cc/androidmk.go b/cc/androidmk.go
index 263f0f3..228b64a 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -248,6 +248,10 @@
fmt.Fprintln(w, "LOCAL_COMPATIBILITY_SUITE :=",
strings.Join(benchmark.Properties.Test_suites, " "))
}
+ if benchmark.Properties.Test_config != nil {
+ fmt.Fprintln(w, "LOCAL_TEST_CONFIG :=",
+ benchmark.Properties.Test_config)
+ }
fmt.Fprintln(w, "LOCAL_NATIVE_BENCHMARK := true")
})
@@ -266,6 +270,10 @@
fmt.Fprintln(w, "LOCAL_COMPATIBILITY_SUITE :=",
strings.Join(test.Properties.Test_suites, " "))
}
+ if test.Properties.Test_config != nil {
+ fmt.Fprintln(w, "LOCAL_TEST_CONFIG :=",
+ test.Properties.Test_config)
+ }
})
androidMkWriteTestData(test.data, ctx, ret)
diff --git a/cc/test.go b/cc/test.go
index 5d0ef20..49fc57b 100644
--- a/cc/test.go
+++ b/cc/test.go
@@ -44,6 +44,10 @@
// 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"`
}
func init() {
@@ -304,7 +308,11 @@
// list of compatibility suites (for example "cts", "vts") that the module should be
// installed into.
- Test_suites []string
+ 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 benchmarkDecorator struct {
diff --git a/java/androidmk.go b/java/androidmk.go
index 40711f6..14e9fec 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -107,6 +107,10 @@
fmt.Fprintln(w, "LOCAL_COMPATIBILITY_SUITE :=",
strings.Join(j.testProperties.Test_suites, " "))
}
+ if j.testProperties.Test_config != nil {
+ fmt.Fprintln(w, "LOCAL_TEST_CONFIG :=",
+ *j.testProperties.Test_config)
+ }
})
return data
@@ -241,6 +245,10 @@
fmt.Fprintln(w, "LOCAL_COMPATIBILITY_SUITE :=",
strings.Join(a.testProperties.Test_suites, " "))
}
+ if a.testProperties.Test_config != nil {
+ fmt.Fprintln(w, "LOCAL_TEST_CONFIG :=",
+ *a.testProperties.Test_config)
+ }
})
return data
diff --git a/java/java.go b/java/java.go
index 38c89f4..700b917 100644
--- a/java/java.go
+++ b/java/java.go
@@ -1352,6 +1352,10 @@
// 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 Test struct {
diff --git a/python/androidmk.go b/python/androidmk.go
index 365b422..20861cb 100644
--- a/python/androidmk.go
+++ b/python/androidmk.go
@@ -66,6 +66,11 @@
fmt.Fprintln(w, "LOCAL_COMPATIBILITY_SUITE :=",
strings.Join(p.binaryDecorator.binaryProperties.Test_suites, " "))
}
+ // If the test config has an explicit config specified use it.
+ if p.testProperties.Test_config != nil {
+ fmt.Fprintln(w, "LOCAL_TEST_CONFIG :=",
+ *p.testProperties.Test_config)
+ }
})
base.subAndroidMk(ret, p.binaryDecorator.pythonInstaller)
}
diff --git a/python/test.go b/python/test.go
index 825e63c..39326f0 100644
--- a/python/test.go
+++ b/python/test.go
@@ -25,8 +25,20 @@
android.RegisterModuleType("python_test", PythonTestFactory)
}
+type TestProperties struct {
+ // the name of the test configuration (for example "AndroidTest.xml") that should be
+ // installed with the module.
+ Test_config *string `android:"arch_variant"`
+}
+
type testDecorator struct {
*binaryDecorator
+
+ testProperties TestProperties
+}
+
+func (test *testDecorator) bootstrapperProps() []interface{} {
+ return append(test.binaryDecorator.bootstrapperProps(), &test.testProperties)
}
func (test *testDecorator) install(ctx android.ModuleContext, file android.Path) {