diff options
author | 2023-10-16 23:24:11 +0000 | |
---|---|---|
committer | 2023-10-17 20:00:12 +0000 | |
commit | 1975d3e326250f8fd002b02faa74b82124b7bae7 (patch) | |
tree | 2a33c5b7511f34cfa0d512e32787cf52b111c9fd /java/java_test.go | |
parent | ab3ed73157b38903f82b84e8074742be49fe0952 (diff) |
Disable from-text stub build for coverage build
Coverage builds depend on `native` properties for API elements, which
are not included in the API signature files and consequently in
from-text stubs. As no robust solution for handling this has been
planned out at the moment, from-text stub build is disabled for
coverage builds.
Per go/android-code-coverage-quickstart , Java code coverage is
enabled by the three environment variables: `EMMA_INSTRUMENT`,
`EMMA_INSTRUMENT_STAIC` and `EMMA_INSTRUMENT_FRAMEWORK`. This change
disables from-text stub build if any of the three variables are set
to true.
Test: go test ./java && m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true nothing --build-from-text-stub and inspect ninja query to verify that the stub java library module depends on the from-source stub module
Bug: 304271961
Change-Id: Ie485c784145de6c253611e698354c4f9e4a30685
Diffstat (limited to 'java/java_test.go')
-rw-r--r-- | java/java_test.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/java/java_test.go b/java/java_test.go index c4fc55bc4..c54c0e68f 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -2599,3 +2599,33 @@ func TestApiLibraryDroidstubsDependency(t *testing.T) { currentApiTimestampPath, ) } + +func TestDisableFromTextStubForCoverageBuild(t *testing.T) { + result := android.GroupFixturePreparers( + prepareForJavaTest, + PrepareForTestWithJavaSdkLibraryFiles, + PrepareForTestWithJacocoInstrumentation, + FixtureWithLastReleaseApis("foo"), + android.FixtureModifyConfig(func(config android.Config) { + config.SetApiLibraries([]string{"foo"}) + config.SetBuildFromTextStub(true) + }), + android.FixtureModifyEnv(func(env map[string]string) { + env["EMMA_INSTRUMENT"] = "true" + }), + ).RunTestWithBp(t, ` + java_sdk_library { + name: "foo", + srcs: ["A.java"], + } + `) + android.AssertBoolEquals(t, "stub module expected to depend on from-source stub", + true, CheckModuleHasDependency(t, result.TestContext, + apiScopePublic.stubsLibraryModuleName("foo"), "android_common", + apiScopePublic.sourceStubLibraryModuleName("foo"))) + + android.AssertBoolEquals(t, "stub module expected to not depend on from-text stub", + false, CheckModuleHasDependency(t, result.TestContext, + apiScopePublic.stubsLibraryModuleName("foo"), "android_common", + apiScopePublic.apiLibraryModuleName("foo"))) +} |