diff --git a/sdk/cc_sdk_test.go b/sdk/cc_sdk_test.go
index 96d321d..315669a 100644
--- a/sdk/cc_sdk_test.go
+++ b/sdk/cc_sdk_test.go
@@ -20,10 +20,22 @@
 	"android/soong/cc"
 )
 
+func testSdkWithCc(t *testing.T, bp string) *testSdkResult {
+	t.Helper()
+
+	fs := map[string][]byte{
+		"Test.cpp":               nil,
+		"include/Test.h":         nil,
+		"libfoo.so":              nil,
+		"aidl/foo/bar/Test.aidl": nil,
+	}
+	return testSdkWithFs(t, bp, fs)
+}
+
 // Contains tests for SDK members provided by the cc package.
 
 func TestSdkIsCompileMultilibBoth(t *testing.T) {
-	result := testSdk(t, `
+	result := testSdkWithCc(t, `
 		sdk {
 			name: "mysdk",
 			native_shared_libs: ["sdkmember"],
@@ -54,7 +66,7 @@
 }
 
 func TestBasicSdkWithCc(t *testing.T) {
-	result := testSdk(t, `
+	result := testSdkWithCc(t, `
 		sdk {
 			name: "mysdk",
 			native_shared_libs: ["sdkmember"],
@@ -131,7 +143,7 @@
 }
 
 func TestSnapshotWithCcShared(t *testing.T) {
-	result := testSdk(t, `
+	result := testSdkWithCc(t, `
 		sdk {
 			name: "mysdk",
 			native_shared_libs: ["mynativelib"],
@@ -226,7 +238,7 @@
 	// b/145598135 - Generating host snapshots for anything other than linux is not supported.
 	SkipIfNotLinux(t)
 
-	result := testSdk(t, `
+	result := testSdkWithCc(t, `
 		sdk {
 			name: "mysdk",
 			device_supported: false,
diff --git a/sdk/java_sdk_test.go b/sdk/java_sdk_test.go
index e5fa47c..e87a82c 100644
--- a/sdk/java_sdk_test.go
+++ b/sdk/java_sdk_test.go
@@ -18,10 +18,20 @@
 	"testing"
 )
 
+func testSdkWithJava(t *testing.T, bp string) *testSdkResult {
+	t.Helper()
+
+	fs := map[string][]byte{
+		"Test.java":              nil,
+		"aidl/foo/bar/Test.aidl": nil,
+	}
+	return testSdkWithFs(t, bp, fs)
+}
+
 // Contains tests for SDK members provided by the java package.
 
 func TestBasicSdkWithJavaLibrary(t *testing.T) {
-	result := testSdk(t, `
+	result := testSdkWithJava(t, `
 		sdk {
 			name: "mysdk",
 			java_libs: ["myjavalib"],
@@ -94,7 +104,7 @@
 }
 
 func TestSnapshotWithJavaLibrary(t *testing.T) {
-	result := testSdk(t, `
+	result := testSdkWithJava(t, `
 		sdk {
 			name: "mysdk",
 			java_libs: ["myjavalib"],
@@ -146,7 +156,7 @@
 	// b/145598135 - Generating host snapshots for anything other than linux is not supported.
 	SkipIfNotLinux(t)
 
-	result := testSdk(t, `
+	result := testSdkWithJava(t, `
 		sdk {
 			name: "mysdk",
 			device_supported: false,
@@ -202,11 +212,21 @@
 	)
 }
 
+func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult {
+	t.Helper()
+
+	fs := map[string][]byte{
+		"foo/bar/Foo.java":               nil,
+		"stubs-sources/foo/bar/Foo.java": nil,
+	}
+	return testSdkWithFs(t, bp, fs)
+}
+
 // Note: This test does not verify that a droidstubs can be referenced, either
 // directly or indirectly from an APEX as droidstubs can never be a part of an
 // apex.
 func TestBasicSdkWithDroidstubs(t *testing.T) {
-	testSdk(t, `
+	testSdkWithDroidstubs(t, `
 		sdk {
 				name: "mysdk",
 				stubs_sources: ["mystub"],
@@ -236,7 +256,7 @@
 }
 
 func TestSnapshotWithDroidstubs(t *testing.T) {
-	result := testSdk(t, `
+	result := testSdkWithDroidstubs(t, `
 		sdk {
 			name: "mysdk",
 			stubs_sources: ["myjavaapistubs"],
@@ -281,7 +301,7 @@
 	// b/145598135 - Generating host snapshots for anything other than linux is not supported.
 	SkipIfNotLinux(t)
 
-	result := testSdk(t, `
+	result := testSdkWithDroidstubs(t, `
 		sdk {
 			name: "mysdk",
 			device_supported: false,
diff --git a/sdk/testing.go b/sdk/testing.go
index ec451ed..47a58b1 100644
--- a/sdk/testing.go
+++ b/sdk/testing.go
@@ -102,13 +102,6 @@
 		"myapex.pem":                                 nil,
 		"myapex.x509.pem":                            nil,
 		"myapex.pk8":                                 nil,
-		"Test.java":                                  nil,
-		"Test.cpp":                                   nil,
-		"include/Test.h":                             nil,
-		"aidl/foo/bar/Test.aidl":                     nil,
-		"libfoo.so":                                  nil,
-		"stubs-sources/foo/bar/Foo.java":             nil,
-		"foo/bar/Foo.java":                           nil,
 	}
 
 	for k, v := range fs {
@@ -120,11 +113,6 @@
 	return ctx, config
 }
 
-func testSdk(t *testing.T, bp string) *testSdkResult {
-	t.Helper()
-	return testSdkWithFs(t, bp, nil)
-}
-
 func testSdkWithFs(t *testing.T, bp string, fs map[string][]byte) *testSdkResult {
 	t.Helper()
 	ctx, config := testSdkContext(bp, fs)
