diff --git a/aconfig/cc_aconfig_library.go b/aconfig/cc_aconfig_library.go
index 8aa696b..210a581 100644
--- a/aconfig/cc_aconfig_library.go
+++ b/aconfig/cc_aconfig_library.go
@@ -38,10 +38,6 @@
 	// name of the aconfig_declarations module to generate a library for
 	Aconfig_declarations string
 
-	// whether to generate test mode version of the library
-	// TODO: remove "Test" property when "Mode" can be used in all the branches
-	Test *bool
-
 	// default mode is "production", the other accepted modes are:
 	// "test": to generate test mode version of the library
 	// "exported": to generate exported mode version of the library
@@ -128,17 +124,11 @@
 	}
 	declarations := ctx.OtherModuleProvider(declarationsModules[0], declarationsProviderKey).(declarationsProviderData)
 
-	if this.properties.Mode != nil && this.properties.Test != nil {
-		ctx.PropertyErrorf("test", "test prop should not be specified when mode prop is set")
-	}
 	mode := proptools.StringDefault(this.properties.Mode, "production")
 	if !isModeSupported(mode) {
 		ctx.PropertyErrorf("mode", "%q is not a supported mode", mode)
 	}
-	// TODO: remove "Test" property
-	if proptools.Bool(this.properties.Test) {
-		mode = "test"
-	}
+
 	ctx.Build(pctx, android.BuildParams{
 		Rule:  cppRule,
 		Input: declarations.IntermediatePath,
diff --git a/aconfig/cc_aconfig_library_test.go b/aconfig/cc_aconfig_library_test.go
index 9a819e5..ba27250 100644
--- a/aconfig/cc_aconfig_library_test.go
+++ b/aconfig/cc_aconfig_library_test.go
@@ -71,8 +71,6 @@
 	setting, expectedErr string
 }{
 	{"mode: `unsupported`,", "mode: \"unsupported\" is not a supported mode"},
-	// TODO: remove this test case when test prop is removed
-	{"mode: `test`, test: true", "test prop should not be specified when mode prop is set"},
 }
 
 func TestIncorrectCCCodegenMode(t *testing.T) {
diff --git a/aconfig/java_aconfig_library.go b/aconfig/java_aconfig_library.go
index b6c90fc..eedb3c3 100644
--- a/aconfig/java_aconfig_library.go
+++ b/aconfig/java_aconfig_library.go
@@ -36,10 +36,6 @@
 	// name of the aconfig_declarations module to generate a library for
 	Aconfig_declarations string
 
-	// whether to generate test mode version of the library
-	// TODO: remove "Test" property when "Mode" can be used in all the branches
-	Test *bool
-
 	// default mode is "production", the other accepted modes are:
 	// "test": to generate test mode version of the library
 	// "exported": to generate exported mode version of the library
@@ -82,17 +78,10 @@
 	// Generate the action to build the srcjar
 	srcJarPath := android.PathForModuleGen(ctx, ctx.ModuleName()+".srcjar")
 
-	if callbacks.properties.Mode != nil && callbacks.properties.Test != nil {
-		ctx.PropertyErrorf("test", "test prop should not be specified when mode prop is set")
-	}
 	mode := proptools.StringDefault(callbacks.properties.Mode, "production")
 	if !isModeSupported(mode) {
 		ctx.PropertyErrorf("mode", "%q is not a supported mode", mode)
 	}
-	// TODO: remove "Test" property
-	if proptools.Bool(callbacks.properties.Test) {
-		mode = "test"
-	}
 
 	ctx.Build(pctx, android.BuildParams{
 		Rule:        javaRule,
diff --git a/aconfig/java_aconfig_library_test.go b/aconfig/java_aconfig_library_test.go
index 05532e7..a803672 100644
--- a/aconfig/java_aconfig_library_test.go
+++ b/aconfig/java_aconfig_library_test.go
@@ -217,9 +217,3 @@
 func TestUnsupportedMode(t *testing.T) {
 	testCodegenModeWithError(t, "mode: `unsupported`,", "mode: \"unsupported\" is not a supported mode")
 }
-
-// TODO: remove this test case when test prop is removed
-func TestBothModeAndTestAreSet(t *testing.T) {
-	testCodegenModeWithError(t, "mode: `test`, test: true",
-		"test prop should not be specified when mode prop is set")
-}
diff --git a/aconfig/rust_aconfig_library.go b/aconfig/rust_aconfig_library.go
index 43078b6..265685e 100644
--- a/aconfig/rust_aconfig_library.go
+++ b/aconfig/rust_aconfig_library.go
@@ -20,10 +20,6 @@
 	// name of the aconfig_declarations module to generate a library for
 	Aconfig_declarations string
 
-	// whether to generate test mode version of the library
-	// TODO: remove "Test" property when "Mode" can be used in all the branches
-	Test *bool
-
 	// default mode is "production", the other accepted modes are:
 	// "test": to generate test mode version of the library
 	// "exported": to generate exported mode version of the library
@@ -70,19 +66,11 @@
 	}
 	declarations := ctx.OtherModuleProvider(declarationsModules[0], declarationsProviderKey).(declarationsProviderData)
 
-	if a.Properties.Mode != nil && a.Properties.Test != nil {
-		ctx.PropertyErrorf("test", "test prop should not be specified when mode prop is set")
-	}
 	mode := proptools.StringDefault(a.Properties.Mode, "production")
 	if !isModeSupported(mode) {
 		ctx.PropertyErrorf("mode", "%q is not a supported mode", mode)
 	}
 
-	// TODO: remove "Test" property
-	if proptools.Bool(a.Properties.Test) {
-		mode = "test"
-	}
-
 	ctx.Build(pctx, android.BuildParams{
 		Rule:  rustRule,
 		Input: declarations.IntermediatePath,
diff --git a/aconfig/rust_aconfig_library_test.go b/aconfig/rust_aconfig_library_test.go
index 5e630b5..3aeab76 100644
--- a/aconfig/rust_aconfig_library_test.go
+++ b/aconfig/rust_aconfig_library_test.go
@@ -119,8 +119,6 @@
 	setting, expectedErr string
 }{
 	{"mode: `unsupported`,", "mode: \"unsupported\" is not a supported mode"},
-	// TODO: remove this test case when test prop is removed
-	{"mode: `test`, test: true", "test prop should not be specified when mode prop is set"},
 }
 
 func TestIncorrectRustCodegenMode(t *testing.T) {
