diff options
Diffstat (limited to 'java')
| -rw-r--r-- | java/dexpreopt_test.go | 126 | ||||
| -rw-r--r-- | java/java_test.go | 3 | 
2 files changed, 129 insertions, 0 deletions
diff --git a/java/dexpreopt_test.go b/java/dexpreopt_test.go new file mode 100644 index 000000000..5b5579983 --- /dev/null +++ b/java/dexpreopt_test.go @@ -0,0 +1,126 @@ +// Copyright 2018 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package java + +import ( +	"testing" +) + +func TestDexpreoptEnabled(t *testing.T) { +	tests := []struct { +		name    string +		bp      string +		enabled bool +	}{ +		{ +			name: "app", +			bp: ` +				android_app { +					name: "foo", +					srcs: ["a.java"], +				}`, +			enabled: true, +		}, +		{ +			name: "installable java library", +			bp: ` +				java_library { +					name: "foo", +					installable: true, +					srcs: ["a.java"], +				}`, +			enabled: true, +		}, +		{ +			name: "java binary", +			bp: ` +				java_binary { +					name: "foo", +					srcs: ["a.java"], +				}`, +			enabled: true, +		}, + +		{ +			name: "app without sources", +			bp: ` +				android_app { +					name: "foo", +				}`, +			// TODO(ccross): this should probably be false +			enabled: true, +		}, +		{ +			name: "installable java library without sources", +			bp: ` +				java_library { +					name: "foo", +					installable: true, +				}`, +			// TODO(ccross): this should probably be false +			enabled: true, +		}, + +		{ +			name: "static java library", +			bp: ` +				java_library { +					name: "foo", +					srcs: ["a.java"], +				}`, +			enabled: false, +		}, +		{ +			name: "android test", +			bp: ` +				android_test { +					name: "foo", +					srcs: ["a.java"], +				}`, +			enabled: false, +		}, +		{ +			name: "android test helper app", +			bp: ` +				android_test_helper_app { +					name: "foo", +					srcs: ["a.java"], +				}`, +			enabled: false, +		}, +	} + +	for _, test := range tests { +		t.Run(test.name, func(t *testing.T) { +			ctx := testJava(t, test.bp) + +			dexpreopt := ctx.ModuleForTests("foo", "android_common").MaybeDescription("dexpreopt") +			enabled := dexpreopt.Rule != nil + +			if enabled != test.enabled { +				t.Fatalf("want dexpreopt %s, got %s", enabledString(test.enabled), enabledString(enabled)) +			} +		}) + +	} +} + +func enabledString(enabled bool) string { +	if enabled { +		return "enabled" +	} else { +		return "disabled" +	} +} diff --git a/java/java_test.go b/java/java_test.go index 2a54f699c..c4cf9059d 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -76,9 +76,12 @@ func testContext(config android.Config, bp string,  	ctx.RegisterModuleType("android_app", android.ModuleFactoryAdaptor(AndroidAppFactory))  	ctx.RegisterModuleType("android_library", android.ModuleFactoryAdaptor(AndroidLibraryFactory))  	ctx.RegisterModuleType("android_test", android.ModuleFactoryAdaptor(AndroidTestFactory)) +	ctx.RegisterModuleType("android_test_helper_app", android.ModuleFactoryAdaptor(AndroidTestHelperAppFactory)) +	ctx.RegisterModuleType("java_binary", android.ModuleFactoryAdaptor(BinaryFactory))  	ctx.RegisterModuleType("java_binary_host", android.ModuleFactoryAdaptor(BinaryHostFactory))  	ctx.RegisterModuleType("java_library", android.ModuleFactoryAdaptor(LibraryFactory))  	ctx.RegisterModuleType("java_library_host", android.ModuleFactoryAdaptor(LibraryHostFactory)) +	ctx.RegisterModuleType("java_test", android.ModuleFactoryAdaptor(TestFactory))  	ctx.RegisterModuleType("java_import", android.ModuleFactoryAdaptor(ImportFactory))  	ctx.RegisterModuleType("java_defaults", android.ModuleFactoryAdaptor(defaultsFactory))  	ctx.RegisterModuleType("java_system_modules", android.ModuleFactoryAdaptor(SystemModulesFactory))  |