summaryrefslogtreecommitdiff
path: root/java/java_test.go
AgeCommit message (Collapse)Author
2019-02-27Add override_module.Jaewoong Jung
This new module type replaces the inherit-package function in make by allowing developers to override the name, the certificate, and the manifest package name of an android_app module. Bug: 122957760 Fixes: 123640028 Test: app_test.go + BrowserGoogle Change-Id: Iefe447e7078b25039233221361ef95c83a29973a
2019-02-16Add java/testing.go for sysprop_test.goColin Cross
Share more of the setup code for java tests to sysprop_tests.go. Test: java_test.go, sysprop_test.go Change-Id: I0e3b287bf188c432d995a9a91a18ebef12aa47d1 Merged-In: I0e3b287bf188c432d995a9a91a18ebef12aa47d1 (cherry picked from commit b19745363f3cc59ffd46c664997602f250892d4d)
2019-02-15Add java/testing.go for sysprop_test.goColin Cross
Share more of the setup code for java tests to sysprop_tests.go. Test: java_test.go, sysprop_test.go Change-Id: I0e3b287bf188c432d995a9a91a18ebef12aa47d1
2019-02-13Create sysprop_library soong module am: c0907f191a am: 92053b977eInseob Kim
am: 751a2cb98a Change-Id: Ie9976968934c4231492af4ad4cbbcfe38790f040
2019-02-13Create sysprop_library soong moduleInseob Kim
A newly introduced sysprop_library soong module will generate a java_sdk_library and a cc_library from .sysprop description files. Both Java modules and C++ modules can link against sysprop_library module, thus giving consistency for using generated sysprop API. As Java controls accessibility of Internal / System properties with @hide and @SystemApi, 2 different header files will be created. And build system will selectively expose depending on the property owner and the place where the client libraries go into. Bug: 80125326 Bug: 122170616 Test: 1) Create sysprop_library module. Test: 2) Create empty txt files under prebuilts/sdk. Test: 3) Create api directory, make update-api, and see changes. Test: 4) Try to link against sysprop_library with various clients. Test: 5) Soc_specific, Device_specific, Product_specific, recovery flags work as intended. Change-Id: I78dc5780ccfbb4b69e5c61dec26b94e92d43c333
2019-02-04resolve merge conflicts of dec157bd6c01da7817ac69a01d75d25ee7150848 to masterColin Cross
Bug: None Test: treehugger Change-Id: I701d7a4ee893eb4113a48eaee9930eceec478a29
2019-02-01Replace *[]string with []string in product variablesColin Cross
There is no need for *[]string, []string can already hold a nil value to specify "not set". Test: all soong tests Change-Id: I85a51b042c12aee1565a9287d62924feeeafd486
2019-01-31Add updatable_media_stubs to prevent private API use.Insun Kang
Bug: 123551910, Bug: 123253805 Test: build Change-Id: Id46ff05fa01db726d613ee2299b0c27921c88aae
2019-01-24Enable certificate overrides with product vars.Jaewoong Jung
Currently it is only for android_app, though it can be easily ported to apex. The make-side change will be made later, along with a real application. Bug: 122957760 Test: app_test.go Change-Id: I41f0be84f8b9f93e9518a16160e10eaa649388cd
2019-01-23Replace annotation_processors with pluginsColin Cross
Follow bazel's modules for annotation processors by introducing a java_plugin module type that can contain extra metadata about the annotation processor, the processor class and a flag to specify if the annotation processor is compatible with the turbine optimization. Deprecate the annotation_processors property, which took a list of java_library_host modules, in favor of the plugins property, which takes a list of java_plugin modules. The annotation_processors property will be removed once all uses have been replaced with plugins. Bug: 77284273 Test: plugin_test.go Test: m caliper Change-Id: I37c1e80eba71ae2d6a06199fb102194a51994989
2019-01-22Pass annotation processors to kotlincColin Cross
Enable the kotlin-annotation-processing plugin and pass annotation processors to it. Bug: 122251693 Test: m checkbuild Test: TestKapt in kotlin_test.go Change-Id: I841df454beaaa7edd263eea714ca0d958a03c9de
2019-01-22Move kotlin to it's own fileColin Cross
kapt is going to make kotlin a little more complicated, move the rules and tests to their own files. Bug: 122251693 Test: m checkbuild Change-Id: Ieed78b97995ced210b710bd50c357514cc8e3bc6
2019-01-17Enable arch variant properties in prebuilt_etc.Jaewoong Jung
Bug: 122332178 Test: Soong unit tests + TreeHugger. Change-Id: Ia8fab0add09478599398e8cbb703debc39f658f6
2019-01-16Support core librarySundong Ahn
To support core library, "Openjdk9", "No_standard_libs" and metalava properties are added to java_sdk_library. If core_lib is true, dist paths are changed to apistubs/core/.... impl library name is changed to {module_name}.jar instead of {module_name}.impl.jar Bug: 110404779 Test: m -j Change-Id: Ieb6248ea714b4260333d8bf61573d4f3413f7f24 Merged-In: Ieb6248ea714b4260333d8bf61573d4f3413f7f24 (cherry picked from commit af4907fed798aa736d3d20f5439ba87be7ab0f10)
2019-01-10Use latest SDK version for current in PDK buildsColin Cross
PDK builds need to use the latest SDK version instead of "current" to match the behavior of Make. Bug: 118634643 Test: sdk_test.go Change-Id: Ice10d0ccb4066f27ce5839fc96a4026510057121
2019-01-10Split out sdk.go from java.goColin Cross
Split out SDK handling functions from java.go to sdk.go and tests from java_test.go to sdk.go. Test: sdk_test.go Change-Id: I83ef48cbe5230572c1d4ecc0e89021d2f7c71b76
2019-01-05Add dexpreopt enabled testsColin Cross
Add tests that verify when dexpreopt is enabled or disabled. Test: dexpreopt_test.go Change-Id: Ideba9c0dac30eb31e7ae29e46d1d1590202b8369
2019-01-04Add buildDir to java patch-module paths.Jaewoong Jung
This solves a problem where javac fails to find patch-module targets when a build diretory is not under the project root. Bug: 117770838 Test: java_test.go + manual build Change-Id: If70d0d388a3f6c87b3f78a927df2063616d50c8a
2018-11-14Enable kotlinc flags in blueprint filesZoran Jovanovic
Add support for adding kotlinc files in the module. Some flags are unnecessary as they are added by default (-no-jdk and -no-stdlib), or are not needed on an Android build (-include-runtime), or may conflict with the build (-kotlin-home and -Xintellij-plugin-root), so the error stops the build if they are added. Test: part of java/java_test.go Change-Id: If3b2777062daaa490a20c014e9b1bb4b1cb0a8df Signed-off-by: Zoran Jovanovic <zoran.jovanovic@sony.com>
2018-10-18Remove reference to core-oj/core-libart, etc.Neil Fuller
Various "core library" targets are no longer used in soong so the tests do not have to create fake build rules for them. Bug: 113148576 Test: make droid Change-Id: Ic754b4195f1597fb599e496c08940231ecbb13f7
2018-10-12Build platform with core library stubs by defaultNeil Fuller
Switch targets that don't explicitly specify an sdk_version to using core.platform.api.stubs instead of the core library implementations. Note: the old core-oj target contained the source for core-lambda-stubs too. The new core.platform.api.stubs does not contain core-lambda-stubs so it is explicitly added to the boot classpath list as part of the switch over. Bug: 113148576 Test: build Change-Id: I689d2127f6b69b4a7034fb96f3d9cf714f801794
2018-10-10Include all core libs in default boot classpathNeil Fuller
To migrate the default compilation over to using "core platform api" stubs we need to make the "before" state as close to the "after" state as possible. The stubs will include all "core libraries" so it makes sense to include those that contribute to the "core platform api": okhttp, bouncycastle and conscrypt. (apache-xml is not included because it doesn't contribute to the core platform API). After this change all explicit dependencies to okhttp, bouncycastle and conscrypt in situations where the default boot classpath is used can be removed. A knock-on of this change is that the conscrypt, bouncycastle and okhttp targets need to be adjusted to explicitly depend on core-oj / core-libart with no_standard_libs: true to avoid a cycle. Bug: 113148576 Test: treehugger Change-Id: I1677af8d9d48fd026874ebce4c864f39ec1a5a3d
2018-10-08Add support for JNI libraries to android_app modulesColin Cross
Make android_app modules a MultiTargets module, which means the common variant will have a list of Targets that it needs to handle. Collect JNI libraries for each Target, and package them into or alongside the APK. Bug: 80095087 Test: app_test.go Change-Id: Iabd3921e1d4c4b4cfcc7e131a0b0d9ab83b0ebbb
2018-09-13Allow exclude_java_resources to affect java_resource_dirsColin Cross
Allow excluding files from directory globbed by java_resource_dirs. Test: java_test.go Change-Id: I9922842248be1a386ab111a5187608438638ffb1
2018-08-29Revert "Add support for renamed kotlin stdlib."Colin Cross
This reverts commit 66c0c4067f8a70847eaa37273671aa8fe4203f1d. Bug: 112674805 Test: m checkbuild Change-Id: I687888136b570f080b57af352af0130355acd216
2018-08-28Track changes to add core-simple to the boot cpNeil Fuller
See the change in build/make for details. Bug: 113148576 Test: make checkbuild / Treehugger Change-Id: I6f7901642c6b907b1e8e9dd31ced3bf1ea6dfd4d
2018-08-16Don't pass resources to r8Colin Cross
R8 complains when it gets dex files in the input jar, but some tests use dex files or dex jars as resources. Keep resources separate from classes until after r8 has been run. Test: java_test.go Test: m checkbuild Change-Id: I1d9164d60d6b054ebb138648da07d80ee769177f
2018-08-01Fix the issue that changing merge_annotations_dir doesn't trigger buildNan Zhang
We don't have API exported to glob any dir outside of current module. Any files deps outside of current module should be either a filegroup/filegroup or a customized module. We already have similar customized module to track droiddoc-template, so rename it to be more generic so that it can be used by merge_annotations_dir also. Bug: b/111916275, b/70351683 Test: touch manual/android/support/design/widget/annotations.xml, and m -j metalava-api-stubs-docs, and check the built output srcjar. Change-Id: I75420ddba69785e46bea75b6dd3f189be7cfe5ad
2018-07-12Add exclude_files and exclude_dirs properties to java_importColin Cross
Prebuilt jars sometime contain files that we don't want. In Make we would delete everything in META-INF when importing jars, but that caused problems when there were necessary files in there, so we added LOCAL_DONT_DELETE_JAR_META_INF. Soong does the opposite, keeping everything by default. Add properties to allow explicitly stripping unwanted files instead. Bug: 111389216 Test: m checkbuild Change-Id: I6d07f519ebc7d0e1bf0af93416bb569e3c2b1500
2018-07-11Don't install java libraries by defaultColin Cross
Very few java libraries need to be installed, most are statically included in other modules. Device modules that are not installed also don't need to be dexed, saving checkbuild time. Change the default for java_library to not be installed, and allow libraries that should be installed to specify installed: true. This makes java_libary and java_library_static identical. It also simplifies some corner cases when converting from Make to Soong if a module is built for the host (which doesn't differentiate between static and non-static/installable) and statically for the device, which couldn't be represented in a single java_library in soong. Bug: 110885583 Test: m checkbuild, compare presubmit target files Change-Id: Idc0841c39a17cebd7bac3559c9408596d167a393
2018-06-25Add api_dirs property and use module name as prefixSundong Ahn
The soong connect the prebuilt library according to LOCAL_SDK_VERSION. But some sdk libraries has diffrent version policy with LOCAL_SDK_VERSION. For this, we need to support direct link to the prebuilt library instead of creating a new LOCAL_XXX_SDK_VERSION. So, The base module name is used as the prefix for the prebuilt module name. Remove the empty file check to support the absence of a prebuilt library and add api_dirs property Bug:77577799 Test: make -j Change-Id: I1086977d26e4ddfd62e290637126d44e1b248bac
2018-06-20Export SDK library namesJiyong Park
java_library, java_import, and android_library export SDK library names that they are using directly or indirectly via its dependencies. When building an apk, the manifest fixer uses the SDK lib names to automatically add <uses-library> tags. The SDK lib names are exported to the make world via LOCAL_EXPORT_SDK_LIBRARIES flag. Bug: 77575606 Test: m -j Change-Id: I4fe606eb7ed23843c58eebe6a324405fe1da34e5
2018-05-30Add core-lambda-stubs to classpathColin Cross
Add core-lambda-stubs to the bootclasspath for modules with no sdk_version or with sdk_version: "current", and to the classpath for modules that specify a specific sdk_version number. Use the prebuilt sdk-core-lambda-stubs when using a prebuilt SDK. Fixes compiling modules with lambdas against the SDK. This reapplies I5e700f2dd86f1a6b84b7a55dd9bfe21a448d3fb6 with fixes and tests for unbundled builds. Bug: 80428539 Test: java_test.go Change-Id: Ib7aaeebb93137270d7336a7293a08ed7064a3184
2018-05-30Revert "Add core-lambda-stubs to classpath"Colin Cross
This reverts commit d9d7be0617f37939b1904e6b0b6eca69da63ba5a. Reason for revert: Broke unbundled builds. Bug: 80428539 Change-Id: I2279dbd2b11a2f63e70ad89d0b3bc42bca2b676b
2018-05-29Add core-lambda-stubs to classpathColin Cross
Add core-lambda-stubs to the bootclasspath for modules with no sdk_version or with sdk_version: "current", and to the classpath for modules that specify a specific sdk_version number. Fixes compiling modules with lambdas against the SDK. Bug: 80428539 Test: java_test.go Change-Id: I5e700f2dd86f1a6b84b7a55dd9bfe21a448d3fb6
2018-05-23droiddoc accepts aidl files as inputsJiyong Park
droiddoc now accepts aidl files as inputs. This in turn allows us to feed aidl files to java_sdk_library modules. This is required as some java_sdk_library internally uses AIDL files and thus we need to specify *.aidl files in the srcs property. Since the srcs property is internally given to the droiddoc module as well as the runtime library, droiddoc should be able to handle aidl files. Bug: 77575606 Test: java_test.go Change-Id: If7a8559a2a1d8ac1056b061d24e3a5ee5253453f
2018-05-15java_sdk_library does the apicheck by defaultJiyong Park
droiddoc now supports apicheck. java_sdk_library uses it to automatically perform apichecks against the not-yet-release API and the latest-released API. A module type prebuilt_apis is added. It finds api txt files and creates filegroup modules so that it can be referenced from java_sdk_library across the module boundary. Bug: 77575606 Test: m -j Test: m -j checkapi Test: m -j update-api Change-Id: I0ba859972eac060296e1df2e71c4e047392d4877
2018-05-08Apicheck Support in SoongNan Zhang
didn't remove the props: api_filename, removed_api_filename yet since these two currently are used by java_sdk_library. Bug: b/78034256 Test: m clean && m checkapi Change-Id: Iebd014ef227487717b5b3819c80d630c34559983
2018-04-28Add prebuilt_etc_xmlJiyong Park
prebuilt_etc_xml installs an xml file to <partition>/etc[/<subdir>] and validates the xml file against the given DTD file before installing it. This change also includes some fixes for prebuilt_etc which is the super module of prebuilt_etc_xml: 1) The module is changed to arch-specific module as the prebuilts are only for devices (installed under the etc dir), but not for hosts. 2) Dependency to android.Prebuilt is removed because android.Prebuilt is intended to be used for the case when a module can exist as prebuilts, source or both. These prebuilt_etc_* modules are prebuilt only. 3) srcs property which accepts a list of source files is changed to src that only accepts single source file, which makes more sense for prebuilts. Bug: 65686190 Test: m -j (xml_test.go) Change-Id: I40484f3f6615b99f6b8d43176db0c40c5bfd838e
2018-04-19Adding java_sdk_libraryJiyong Park
java_sdk_library is to make a Java library that implements optional SDK APIs to apps. It is actually a wrapper for several modules: 1) stubs library that clients are linked against to, 2) droiddoc module that internally generates API stubs source files, 3) the real runtime shared library that implements the API, and 4) XML file for adding the runtime lib to the classpath at runtime if requested via <uses-library>. Note: this is only the initial CL for the feature. Followings are features currently missing and under development. 1) check for API consistency 2) install stubs libs as the dist artifacts 3) ensuring that apps have appropriate <uses-library> tag 4) disallowing linking to the runtime shared lib 5) HTML generation Bug: 77575606 Test: m -j Change-Id: I4a4ccf6e730e041703c63bb275d8860d0de96887
2018-04-18Fix few issues with filegroupsPirama Arumuga Nainar
Bug: http://b/64121881 Bug: http://b/78188880 - Allow filegroup's properties to be extended by a LoadHook - Support a filegroup (':module') in a prebuilt's 'Srcs' property to export files from a different path as the prebuilt's sources. This change also includes a refactoring that moves genrule/filegroup.go to android/filegroup.go so that FileGroupFactory is visible in prebuilt_test.go. Test: Test https://android-review.googlesource.com/c/platform/development/+/469159 in clang-tools branch on Linux, Darwin. Test regular build in aosp/master. Change-Id: I3ff6215ab2e62955f039fd1086c31f1bd50ebcf6
2018-04-18Migrate soong to use new sdk prebuilts.Anton Hansson
Make is moved over in aosp/661963. Bug: 77525052 Test: make Change-Id: I04ea58964df3d4149ef09ab7ca9238336d338a06
2018-04-16Add support for android_library modulesColin Cross
Add support for compiling android_library modules into AARs, and refactor app support on top of it. Bug: 73724997 Test: app_test.go Change-Id: I1dfac5fffe577c6680bc4709147b2061eb7d819c
2018-04-11Expose ProductVariables from TestConfigDan Willemsen
In preparation for unexporting ProductVariables, explicitly return a pointer to the structure from TestConfig / TestArchConfig. Bug: 76168832 Test: m blueprint_tools Change-Id: Iccfb4c912f8e0ee3f620cc1ee00f0cdc5cba7735
2018-04-10Allow wildcards in java_resource_dirsColin Cross
Expand java_resource_dirs using ctx.Glob before globbing inside it in case it has wildcards in it. Fixes: internal error: panic in GenerateBuildActions for module "icu4j" variant "linux_glibc_common" path "external/icu/icu4j/main/classes/charset/src/META-INF" does not start with "external/icu/icu4j/main/classes/*/src" Test: java_test.go Change-Id: Icd28b7a3dd14752642fb0ec8d41bbd6e30f81a68
2018-04-10Use built SDK stubsColin Cross
Now that the SDK stubs are built in Soong, undo the hack that uses the prebuilt stubs. Fix the linktype checks to treat the various stubs libraries as the correct type, since they can't be annotated with sdk_version. Bug: 70351683 Bug: 77285514 Test: m checkbuild Change-Id: I5e870c34dd0ebc8ae3f888ec627da590c846a76f
2018-03-28Link type check for Android.bp defined Java modulesJiyong Park
Link-type is also checked among Java modules defined in Soong. Until now, the check has been done in between Soong/Make and Make/Make. With this, a Java module can't depend on another Java module built with larger API surface. For example, a java library built with Android SDK (sdk_version: "current") can't link to a library built without SDK. Bug: 73829976 Test: m -j Change-Id: I64277be6e65e8535aad951b4f08f8d10b67abe66 Merged-In: I64277be6e65e8535aad951b4f08f8d10b67abe66 (cherry picked from commit f3586661e8525125f529082fee14edec32d73e04)
2018-03-20Add support for renamed kotlin stdlib.Przemyslaw Szczepaniak
Added new CompilerProperty flag, rename_kotlin_stdlib, which allow to build kotlin libraries/binaries that use platform internal version of kotlin stdlib (com.android.kotlin.*). This way, app-provided kotlin standard library won't collide with version used internaly. + remove kotlinc-build.xml after compilation so it won't end up in the result jar file + remove *.kotlin_module and *.kotlin_bultin filesfrom result jar file. These files are needed only by kotlin-reflect library and need more work to support kotlin-stdlib renaming. Bug: 73281388 Test: java_test.go Change-Id: Iae7ccb919e2ae9853b3f30f3dd447ebd01a1bed0
2018-03-15Extract failIfErrored() to android/testing.goLogan Chien
Bug: 74506774 Test: lunch aosp_walleye-userdebug && make # runs unit tests Change-Id: I1c09412d5988dca2cc1c5f041893b313ab1c163a
2018-03-01Add droiddoc_templateDan Willemsen
We prefer not to use absolute paths in modules, but to reference modules that have associated paths. This a few benefits: * it's easier to move a module than to update all the references * if the module doesn't exist, we treat it as a normal missing dependency, not having to deal with the missing dependency in path.go * implementing visibility(etc) in the future would be simpler if there was a module attached to the reference, so we don't have to do various path-based lookups to try and match things up. So define a `droiddoc_template` module, which takes a path, and will run the glob once in that module. All of the `droiddoc` modules can then specify it through the `custom_template` property, which will pull the necessary data. Also fix that htmldirs should be references from the local path, the htmldir2 argument never being specified, and complain if more than two htmldirs are specified, or if the custom template isn't specified. Test: m core-docs Test: out/soong/build.ninja is nearly identical - line numbers in comments - adds directories to droiddoc template dependency lists, which is more correct, since we need to rerun on added or removed files too. Change-Id: Iff630bddb3818b8eeed439de7e41fc7fbe7cdcb0