diff --git a/java/androidmk.go b/java/androidmk.go
index 4eae81e..384d7e8 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -114,6 +114,8 @@
 		}
 	})
 
+	androidMkWriteTestData(j.data, &data)
+
 	return data
 }
 
@@ -255,6 +257,7 @@
 			fmt.Fprintln(w, "LOCAL_FULL_TEST_CONFIG :=", a.testConfig.String())
 		}
 	})
+	androidMkWriteTestData(a.data, &data)
 
 	return data
 }
@@ -375,3 +378,15 @@
 		},
 	}
 }
+
+func androidMkWriteTestData(data android.Paths, ret *android.AndroidMkData) {
+	var testFiles []string
+	for _, d := range data {
+		testFiles = append(testFiles, d.String()+":"+d.Rel())
+	}
+	if len(testFiles) > 0 {
+		ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) {
+			fmt.Fprintln(w, "LOCAL_COMPATIBILITY_SUPPORT_FILES := "+strings.Join(testFiles, " "))
+		})
+	}
+}
diff --git a/java/app.go b/java/app.go
index 0ca7a2b..78d526d 100644
--- a/java/app.go
+++ b/java/app.go
@@ -224,6 +224,7 @@
 	testProperties testProperties
 
 	testConfig android.Path
+	data       android.Paths
 }
 
 func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
@@ -236,10 +237,12 @@
 	a.generateAndroidBuildActions(ctx)
 
 	a.testConfig = tradefed.AutoGenInstrumentationTestConfig(ctx, a.testProperties.Test_config, a.manifestPath)
+	a.data = ctx.ExpandSources(a.testProperties.Data, nil)
 }
 
 func (a *AndroidTest) DepsMutator(ctx android.BottomUpMutatorContext) {
 	android.ExtractSourceDeps(ctx, a.testProperties.Test_config)
+	android.ExtractSourcesDeps(ctx, a.testProperties.Data)
 	a.AndroidApp.DepsMutator(ctx)
 }
 
diff --git a/java/java.go b/java/java.go
index 8fe4f35..a015a99 100644
--- a/java/java.go
+++ b/java/java.go
@@ -1357,6 +1357,10 @@
 	// the name of the test configuration (for example "AndroidTest.xml") that should be
 	// installed with the module.
 	Test_config *string `android:"arch_variant"`
+
+	// list of files or filegroup modules that provide data that should be installed alongside
+	// the test
+	Data []string
 }
 
 type Test struct {
@@ -1365,10 +1369,12 @@
 	testProperties testProperties
 
 	testConfig android.Path
+	data       android.Paths
 }
 
 func (j *Test) GenerateAndroidBuildActions(ctx android.ModuleContext) {
 	j.testConfig = tradefed.AutoGenJavaTestConfig(ctx, j.testProperties.Test_config)
+	j.data = ctx.ExpandSources(j.testProperties.Data, nil)
 
 	j.Library.GenerateAndroidBuildActions(ctx)
 }
@@ -1379,6 +1385,7 @@
 		ctx.AddDependency(ctx.Module(), staticLibTag, "junit")
 	}
 	android.ExtractSourceDeps(ctx, j.testProperties.Test_config)
+	android.ExtractSourcesDeps(ctx, j.testProperties.Data)
 }
 
 func TestFactory() android.Module {
