aboutsummaryrefslogtreecommitdiff
path: root/java/java_test.go
Commit message (Collapse)AuthorAgeFilesLines
* Add java_api_library properties to java_defaultsJihoon Kang2023-01-101-0/+88
| | | | | | | | | | | | | | | | | | Context - Some Java API surfaces have subset relationships (i.e. public API surface is a subset of system API surface). Thus, simply listing all API files that contributes to hierarchical API surfaces when defining java_api_library modules can lead to repetition of code in Android.bp files. - Utilizing java_defaults can resolve this problem by grouping java_api_contribution modules by API surfaces, and reduce code repetition and enhance readability. Implementation - Modify java_api_library module to utilize java_defaults modules. Test: m Change-Id: I6adead208ca36c21de72ee39c4f532b84af8a153
* Allow adding extra tradefed options in the Android.bp fileCole Faust2023-01-031-0/+24
| | | | | | | | | | | | Some tests need to add custom tradefed options, but still want to keep most of the soong autogenerated tradefed xml file. Expose a test_options: { tradefed_options: [...] } property that will allow tests to add more options to the autogenerated xml file. Fixes: 184895128 Test: go test, and verified that the ninja files did not change for aosp_arm64 Change-Id: I50d4ad139322e9e207202f1e1a50f5bbb424aa6f
* Revert "Allow adding extra tradefed options in the Android.bp file"Tahsin Loqman2022-12-191-22/+0
| | | | | | | | This reverts commit 8ec823cba166a41eb0e9e5ff8fe679e691fec678. Reason for revert: DroidMonitor: Potential culprit for Bug b/262965953 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted. Change-Id: I236cc36981d8b30527ca286632727f8ca267e969
* Allow adding extra tradefed options in the Android.bp fileCole Faust2022-12-091-0/+22
| | | | | | | | | | | | Some tests need to add custom tradefed options, but still want to keep most of the soong autogenerated tradefed xml file. Expose a test_options: { tradefed_options: [...] } property that will allow tests to add more options to the autogenerated xml file. Fixes: 184895128 Test: go test, and verified that the ninja files did not change for aosp_arm64 Change-Id: I75f7eb002c8325ce7cdc76e12e76e16195320620
* Add an api_files property in java_api_librarySpandan Das2022-12-051-1/+2
| | | | | | | | | | | | java_api_contribution is useful to java_api_library when the api files are not colocated. If they are colocated (e.g. in Multi-tree assembled api_surfaces directory), it is useful to refer to them directly without nedding to create a java_api_contribution module. Test: In build/soong, go test ./java Change-Id: I5b4e557068a1e5c71a80c76452030e72ec83a696
* Merge "Add min_sdk_version to aidlCmd for droidstubs"Spandan Das2022-11-221-0/+33
|\
| * Add min_sdk_version to aidlCmd for droidstubsSpandan Das2022-11-211-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | JavaDoc's implementation of `aidlFlags` omits `min_sdk_version`, and therefore aidl compiler would default it to a default version. To fix this, pass the min_sdk_version explicitly Bug: 253122520 Test: TH Test: go test ./java Change-Id: Ia8f639174f8361136596d0e7b3286606f84705cd
* | Update java_api_library prop nameJihoon Kang2022-11-191-4/+4
| | | | | | | | | | | | | | | | | | | | Context - Update java_api_library module's prop name from api_providers to api_contributions to adjust to module rename - Update variables name correspondingly to enhance readability Test: m Change-Id: I93b941a572e04bed6084109d151ba83a82715651
* | Create java_api_contribution and java_api_library moduleJihoon Kang2022-11-161-0/+105
|/ | | | | | | | | | | | | | | | | | | | | | | | Context - Droidstubs module is currently responsible not only for java api stubs generation, but also for checking api equality and compatibility. - Generating stubs with incomplete api text file that does not list entire api surface is done through metalava implicitly adding unlisted methods from java source files to the stubs in droidstubs module. - These factors make java stubs generation harder to debug, thus introduce `java_api_contribution` and `java_api_library` modules to make java api stubs and jar generation more explicit in Android.bp level and eventually easier to debug. Implementation - `java_api_contribution` module is included in api domains' directory and lists api text file directory to be added to the api surface - `java_api_library` collects all api text file that forms the api surface and creates stubs invoking metalava. Generated java stub files are converted into `.srcjar`, and eventually `.jar` file which is the complete api surface. Test: m Change-Id: I86f097cc8592334a5eaa900cec12764c5fcc09e7
* Generate a default wrapper for device java_binaryZi Wang2022-10-271-0/+23
| | | | | | | | | | Any device java_binary that doesn't have a specific wrapper must have a main_class property, which is used to generate its default wrapper. Otherwise its build should fail. Bug: 250851599 Test: TestDeviceBinaryWrapperGeneration in java_test.go Change-Id: Ice4c580bcfc1b92f95e217b39e984c55d25a3a02
* Disable all filegroups in mixed buildsLiz Kammer2022-10-241-0/+2
| | | | | | | | | Rather than individually denylisting filegroups until we prioritize a solution for mixed builds that will correctly integrate into uses such as proto, aidl, gensrcs, etc. Test: mixed_droid Change-Id: Iddbd391af7dd7cabc892b2b26dbc68e3aa506471
* Support Kotlin in Robolectric testChaohui Wang2022-10-111-2/+2
| | | | | | | | | | | | | | | | | | | | Currently, Robolectric test written in Kotlin may not run, especially when shards are in used, for example SettingsRoboTests has 10 shards. This is because Robolectric test currently only recognize java files, adding kt files to fix. Rename current uniqueSrcFiles to uniqueJavaFiles, and compiledJavaSrcs to uniqueSrcFiles. uniqueSrcFiles will contains both Java and Kotlin files. Note: android.FirstUniquePaths cannot be used, seems the behavior is different and cause build error. Bug: 252355400 Test: cd build/soong && mm Test: m RunSettingsRoboTests with Kotlin tests Change-Id: Id530ae4dcabffe01a06f44fe4234ffc67b73a601
* AIDL source generation accounts for Bazel pathsSam Delmerico2022-08-251-0/+34
| | | | | | | | | | | | The AIDL source generation rule sets include flags based on the relative path of .aidl sources. For .aidl sources provided by Bazel targets, e.g. in a filegroup, the same directory could be added to the include path twice. Instead we need to ensure that if a Bazel source provides the include path, that we don't add it again from a Soong source. Bug: 229251008 Test: USE_BAZEL_ANALYSIS=1 m api-stubs-docs-non-updatable Change-Id: I4997039003242b43e0e52ccf41729acb4ad11324
* Fix ProcessBazelQueryResponse of filegroupVinh Tran2022-08-181-0/+35
| | | | | | | | | | | | | | In mixed builds currently, filegroup doesn't use path prop when creating the paths to the srcs. It defaults to ModuleDir. Hence, when java.genAidlIncludeFlags [1] calls srcFile.Rel() to eventually create the AIDL include dir for AIDL flags, srcFile.Rel() returns the filepath relative to the module directory instead. This CL appends path prop to module dir when creating relativeRoot. This fixes the bridge between converted filegroup that set path prop (e.g. libbinder_aidl) to unconverted module (for example, droidstubs). The fix is needed for the child CL aosp/2186599 to convert libbinder_aidl to Bazel. Without this fix, module-lib-api-stubs-docs-non-updatable (unconverted module that depends on libbinder_aidl) can't be built in mixed builds. [1]: https://cs.android.com/android/platform/superproject/+/master:build/soong/java/gen.go;l=123?q=java%2Fgen.go Test: go test Bug: 243010121 Change-Id: Ic2dd2ab9199c62010303a5b8c611d722f4a4118d
* add java_import to mixed buildSam Delmerico2022-07-261-0/+45
| | | | | | | | | Bug: 220168131 Test: go test ./java -run TestImportMixedBuild Test: USE_BAZEL_ANALYSIS=1 m CtsManagedProfileApp && verify jars are included from execroot/__main__ directory Test: build/bazel/ci/mixed_droid.sh Change-Id: I6d35a2389ea35525d532efc8474c71d2c8825646
* Merge "add multilib data_device_bins properties"Sam Delmerico2022-06-081-40/+150
|\
| * add multilib data_device_bins propertiesSam Delmerico2022-06-061-40/+150
| | | | | | | | | | | | | | | | | | | | | | Some targets need to be able to specify the specific architecture for a data_device_bin module. This commit adds new properties to allow specification of first, both, 32, or 64 multilib properties. Bug: 231448797 Bug: 232408185 Test: go test ./java -run TestDataDeviceBinsBuildsDeviceBinary Change-Id: I457cf4b1a9ccb28b46042f874c96bd0a87009fab
* | Revert "Revert "Use D8 by default for android_test""Jared Duke2022-06-021-2/+2
|/ | | | | | | | | | This reverts commit 4e445be558e5b41dd8ac279ed6d25c41a9f0cd7b. Reason for revert: GtsExoPlayerTestCases now uses multidex. Test: m + manual builds for test_suites_x86_64_coverage Change-Id: I608b3b79137b216f546446e1c4f89f4542572581 Bug: 192032291
* Revert "Use D8 by default for android_test"Jared Duke2022-05-231-2/+2
| | | | | | | | | This reverts commit 02edc1004757f6d6d5c2e2a93f1e8656ae2435cf. Reason for revert: Breaks test_suites_x86_64_coverage Bug: 233421462 Change-Id: I7b04d3fd7802be0f271ea3c29ef25e3d08ab1389
* Use D8 by default for android_testJared Duke2022-05-201-2/+2
| | | | | | | | | | | | | | | | android_test defaults to using R8, but with shrinking, optimization and obfuscation disabled, eliminating most of the benefits of R8. Instead, use D8 by default, improving build performance and avoiding any other issues that may arise in test-specific code related to whole-program R8 execution. An initial audit shows that android_test targets that *do* enable shrinking or optimization also explicitly opt in to R8. A follow-up CL will do the same for android_test_helper_app, but that requires some additional auditing of downstream targets. Bug: 192032291 Test: m + presubmit Change-Id: I5b14a0986dde210f241a77c3a93daacf9e53d667
* Use turbine instead of kapt for kotlin annotation processorsColin Cross2022-03-251-1/+1
| | | | | | | | | | | | | | Follow Bazel by using turbine instead of kapt to run annotation processors. This still requires using kapt to generate java stubs of kotlin soruces, then uses turbine to run annotation processors on the java stubs and any java sources to generate sources and resources, and passes the annotation processor generated sources to kotlinc and javac. Bug: 225013372 Test: m checkbuild Test: TestKapt Change-Id: I9c6fc496a9fba64658bb062538bc5f7b9478b07a
* Add AIDL enforce_permissions attributeThiƩbaud Weksteen2022-02-241-0/+36
| | | | | | | | | | | When set to true, this attribute will pass down the -Wmissing-permission-annotation flag to the aidl compiler. It is possible to declare a set of exceptions (for a graduable adoption). For now, only Java is supported. Test: build having the attribute enabled for frameworks/base Bug: 220214993 Change-Id: I54350199b4d980aef0050519e3daf1fef616d08c
* build device binary for java_test_hostSam Delmerico2022-01-261-0/+61
| | | | | | | | | | | This commit adds support for a java_host_test that requires a target binary to run. If the binary has host and target variants and is added as a dependency in the `data` attribute, then the host variant is used. Instead, we need a way to force the use of the target variant. Bug: 182919153 Test: add code from aosp/1647282/1 && atest AuthFsHostTest Change-Id: I68a6259b41a5e6809e1b82eec3122ffdf5067f56
* bp2build converts java_genrule and java_genrule_hostSam Delmerico2022-01-211-54/+0
| | | | | | | | | | Bp2build currently supports building genrules for cc modules, but does not support building java_genrule* modules. This commit adds this functionality. Bug: 213480907 Test: go test ./bp2build Change-Id: I473196c5bcf5582ba0c8faa65b5005f81ac973a4
* Prepend header jar for sharded javac compilationColin Cross2021-11-191-3/+3
| | | | | | | | | | | | | | | | | | When compiling without sharding javac will prefer classes built from source over classes in the classpath. Compiling with sharding puts the header classes for all the sources onto the classpath, including the sources that are not part of the current shard. Emulate the behavior when building without sharding by putting the header jar first on the classpath so classes are resolved from the rest of the sources before the real classpath. Also switch to using the header jar without static libs dependencies merged in, as those will already be present in the classpath. Test: m framework-minus-apex Test: m services.core Test: TestSharding Change-Id: Id11b39c15d89ce70da27d746a5c7e6b603c3c0f9
* Pass --min_sdk_version to aidl compilerJooyung Han2021-11-061-0/+30
| | | | | | | | | | | cc/java modules can have .aidl files as srcs. Pass min_sdk_version to the aidl compiler so that it can check some features against it. For example, ParcelableHolder AIDL type is available since 31. Bug: 205338951 Test: soong test && m Change-Id: I7ecab913e00c9b6a3ce870dacbe9773d2ddb7e93
* Propagate the dex jar path as an OptionalPath which is either valid orMartin Stjernholm2021-09-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | invalid with a message. This will allow propagating any error from the deapexer module for prebuilt APEXes to the location where the dex jars get used. It's only at those points that we can raise errors about not being able to extract files from the deapexer modules if they are invalid, and this way we avoid encoding knowledge there about why they may be invalid. To keep the refactoring limited it intentionally does not change any of the existing logic for when dexJarFiles are set or not (non-nil vs nil prior to this change), although there may be opportunity to use this for more conditions when dex jars aren't available. The refactoring is also not extended to dexpreopt.ClassLoaderContextMap. Test: m nothing Bug: 192006406 Change-Id: I68986dccd9a9b3fee4d24caa1947ea17a36caedc
* Rename BuildDir and NinjaBuildDir.Lukacs T. Berki2021-08-271-1/+1
| | | | | | | | | | These are just out/ and out/soong/ and the old names were quite confusing. Test: Presubmits. Merged-In: I999ca62162062f27e449f83ffb00fa580d4065b8 Merged-In: I2fcd80a9e376a6842a06aa104a9f6f5c5e16f8c7 Change-Id: Ib481d2aac40df8da1b74174dc8ec576c1cb48be0
* Replace android.BuildOs with Config.BuildOSColin Cross2021-07-201-5/+5
| | | | | | | | | Replace the android.BuildOs constant with Config.BuildOS so that it can vary based on the product config. Bug: 190084016 Test: all Soong tests Change-Id: Ia67f872d8b2ab788747a22e3a9659dc21c9775cd
* Allow disabling errorprone even when RUN_ERROR_PRONE is trueCole Faust2021-06-181-1/+65
| | | | | | | | | | | | Some modules use -XepDisableAllChecks to disable errorprone. However, this still causes them to be compiled twice when RUN_ERROR_PRONE is true. Allow the new enabled property to be set to false to disable errorprone entirely, so that those modules are only compiled once. Bug: 190944875 Test: New unit tests Change-Id: Ie68695db762fffcaf11bbbcb0509c4fcab73f5c5
* Add a build flag to always enable errorprone per-targetCole Faust2021-06-141-0/+28
| | | | | | | | | | | | | | | Currently, errorprone is only run if the RUN_ERROR_PRONE enviornment variable is true. Add a flag that individual modules can use to always enable errorprone. In a followup cl, I plan to add another flag that will force all errorprone checks to be errors, so that modules can be confident that they're not ignoring any errorprone checks. Bug: 190944875 Test: New unit test and manually Change-Id: Iab0c81642ed22a736add054147829e91a891d179
* Move java_sdk_library tests to sdk_library_test.goColin Cross2021-06-011-816/+0
| | | | | | | | Seperate the java_sdk_library tests into their own file. Bug: 186723288 Test: go test ./java/... Change-Id: I899c2946cb2234dc595a4281e64bbb239b89bda8
* Merge changes Ia74a2b83,I30a46c8f,Iac7c0149Jaewoong Jung2021-04-221-101/+0
|\ | | | | | | | | | | | | * changes: Add lint.strict_updatability_linting Move Java lint tests to lint_test.go Forbid bypassing updatability lint checks.
| * Move Java lint tests to lint_test.goJaewoong Jung2021-04-211-101/+0
| | | | | | | | | | | | Test: lint_test.go Bug: 182349282 Change-Id: I30a46c8f704e66cd04541c78d3f22a140d3284ef
* | Add new stub_only_static_libs attr for sdk_libraryAnton Hansson2021-04-221-20/+40
|/ | | | | | | | | | | | | | Allow java_sdk_libraries to include libraries statically into their stubs. The immediate use-case of this is to embed libcore notice files into their stubs. Also extend the java_sdk_library tests for impl/stub-only-libs, plus some not assert utils. Bug: 173186484 Bug: 184839599 Test: soong tests Change-Id: I1ebf2f35c048eab5cec5125482a0304fe660f188
* Reland: Add jni_libs property to java testsColin Cross2021-04-191-0/+33
| | | | | | | | | | | | Add jni_libs property to java tests and treat it as test data that should be copied to the lib or lib64 directory in the test directory. This relands I3a118b933ab30dcd731c6dc2708da9bc63ab5520 with fixes for the test on mac. Fixes: 176593487 Test: java_test.go Change-Id: I2f8c46643cff7a7ae6dc4d4dbad58f0396e45f09
* Merge "Revert "Add jni_libs property to java tests""Colin Cross2021-04-171-26/+0
|\
| * Revert "Add jni_libs property to java tests"Colin Cross2021-04-171-26/+0
| | | | | | | | | | | | | | | | | | This reverts commit 246164a055a529e081a7690cc9043b496757a30c. Reason for revert: broke the mac build Bug: 176593487 Change-Id: Id0242e37aa40d84d291bf7b8ee46dfe98c4d5905
* | Merge changes from topic "tvts-test-host-jni"Treehugger Robot2021-04-171-0/+26
|\| | | | | | | | | | | * changes: Add jni_libs property to java tests Add Target to cc.SharedLibraryInfo
| * Add jni_libs property to java testsColin Cross2021-04-161-0/+26
| | | | | | | | | | | | | | | | | | Add jni_libs property to java tests and treat it as test data that should be copied to the lib or lib64 directory in the test directory. Fixes: 176593487 Test: java_test.go Change-Id: I3a118b933ab30dcd731c6dc2708da9bc63ab5520
* | Introduce NewApi lint checksPedro Loureiro2021-04-131-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are enabling NewApi lint check where the min sdk != compile sdk. At the same time, we are introducing baseline files for existing projects that fail this check in order to keep the build running. At the very least we stop introducing new problems and teams might realise of risks in their projects they were not aware of. Bug: 150847901 Test: m lint-check Change-Id: Icfa5eb98cc6b6708149f0c52fac8fc1440d9c3b0 Merged-In: Icfa5eb98cc6b6708149f0c52fac8fc1440d9c3b0
* | Merge "Remove unused java testing methods"Paul Duffin2021-03-311-17/+0
|\ \
| * | Remove unused java testing methodsPaul Duffin2021-03-311-17/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Also, stops exporting methods that are no longer used outside the java package. Bug: 181070625 Test: m nothing Change-Id: I23d35bbc21f82f2dae802aa53badda4c58b41024
* | | Remove varargs from RunTest(t *testing.T)Paul Duffin2021-03-311-1/+6
|/ / | | | | | | | | | | | | | | Use GroupFixturePreparers instead. Bug: 182885307 Test: m nothing Change-Id: Iaedb0ddc9d6a704f4d41363e705f3025a1291dc8
* | Remove extraneous calls to TestingBuildParams.RelativeToTop()Paul Duffin2021-03-301-8/+8
| | | | | | | | | | | | | | | | Deprecated the method to try and prevent any other uses being added. Bug: 183650682 Test: m nothing Change-Id: Ia6f43851e5a00c9d96af780e3bd21e03175e1a2f
* | Automatically call TestingBuildParams.RelativeToTop()Paul Duffin2021-03-301-2/+2
| | | | | | | | | | | | | | | | | | Fixes the few tests that break due to this and which cannot easily be separated into their own changes. Bug: 183650682 Test: m nothing Change-Id: Ia2f31213a1f114a78e66a81d89279ecde9f4c465
* | Split droidstubs out of droiddoc.goColin Cross2021-03-251-240/+0
| | | | | | | | | | | | | | | | Split part of droiddoc.go into droidstubs.go. Also split droiddoc_test.go and droidstubs_test.go out of java_test.go. Test: go test ./java Change-Id: Iea742e75b6925b135016f7bbf3a168c696a6c433
* | Support multiple rsp files in RuleBuilderColin Cross2021-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | The lint rule is manually creating a second rsp file because Ninja only supports on per rule. Move the support into RuleBuilder so that it can apply the same rewrites that it does to the primary one. Test: TestRuleBuilder_Build Change-Id: Iec250a2d60e74ccf1b4ad085a960fec6867ea559
* | Fix TestDroiddoc's reliance on absolute pathsPaul Duffin2021-03-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TestDroiddoc compares the value returned by OutputFiles(""), which will usually be absolute paths including the temporary buildDir, against paths returned from TestingBuildParam.RelativeToTop(), which does not currently change the Path contents and so will include absolute temporary paths. However, a follow up change to this will make the TestingBuildParam.RelativeToTop() also change the Path contents at which point this test would be comparing relative to absolute paths. So, this change makes sure that they are all converted to relative to top paths before comparison. Bug: 183650682 Test: m droid Change-Id: Ia4478f527af27a920945f5849525e5031cc5b8b6
* | Convert test that disallows non existent paths to use fixturesPaul Duffin2021-03-241-27/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change needed to add some additional files to the registered files for PrepareForTestWithJavaDefaultModules because otherwise they would fail when "TestAllowNonExistentPaths = false". Those files were being added by the TestJavaLintRequiresCustomLintFileToExist (albeit in some cases in different locations to that required by the default modules but as the files are needed by the modules defined in PrepareForTestWithJavaDefaultModules they should be defined in it. A couple of other places also provided some files so moving them into PrepareForTestWithJavaDefaultModules caused some conflicts which needed to be resolved. Bug: 183184375 Test: m nothing Change-Id: I76ce9f1673c1c1c4000635b76b8377d582224bf1