1 // Copyright 2018 Google Inc. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package java 16 17 import ( 18 "testing" 19 20 "android/soong/android" 21 ) 22 23 func JavaGenLibTestFactory() android.Module { 24 callbacks := &JavaGenLibTestCallbacks{} 25 return GeneratedJavaLibraryModuleFactory("test_java_gen_lib", callbacks, &callbacks.properties) 26 } 27 28 type JavaGenLibTestProperties struct { 29 Foo string 30 } 31 32 type JavaGenLibTestCallbacks struct { 33 properties JavaGenLibTestProperties 34 } 35 36 func (callbacks *JavaGenLibTestCallbacks) DepsMutator(module *GeneratedJavaLibraryModule, ctx android.BottomUpMutatorContext) { 37 } 38 39 func (callbacks *JavaGenLibTestCallbacks) GenerateSourceJarBuildActions(module *GeneratedJavaLibraryModule, ctx android.ModuleContext) (android.Path, android.Path) { 40 return android.PathForOutput(ctx, "blah.srcjar"), android.PathForOutput(ctx, "blah.pb") 41 } 42 43 func testGenLib(t *testing.T, errorHandler android.FixtureErrorHandler, bp string) *android.TestResult { 44 return android.GroupFixturePreparers( 45 PrepareForIntegrationTestWithJava, 46 android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) { 47 ctx.RegisterModuleType("test_java_gen_lib", JavaGenLibTestFactory) 48 }), 49 ). 50 ExtendWithErrorHandler(errorHandler). 51 RunTestWithBp(t, bp) 52 } 53 54 func TestGenLib(t *testing.T) { 55 bp := ` 56 test_java_gen_lib { 57 name: "javagenlibtest", 58 foo: "bar", // Note: This won't parse if the property didn't get added 59 } 60 ` 61 result := testGenLib(t, android.FixtureExpectsNoErrors, bp) 62 63 javagenlibtest := result.ModuleForTests("javagenlibtest", "android_common").Module().(*GeneratedJavaLibraryModule) 64 android.AssertPathsEndWith(t, "Generated_srcjars", []string{"/blah.srcjar"}, javagenlibtest.Library.properties.Generated_srcjars) 65 } 66