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) {
