aboutsummaryrefslogtreecommitdiff
path: root/java/java_test.go
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "Add core-lambda-stubs to classpath"Colin Cross2018-05-301-9/+8
| | | | | | | | | This reverts commit d9d7be0617f37939b1904e6b0b6eca69da63ba5a. Reason for revert: Broke unbundled builds. Bug: 80428539 Change-Id: I2279dbd2b11a2f63e70ad89d0b3bc42bca2b676b
* Add core-lambda-stubs to classpathColin Cross2018-05-291-8/+9
| | | | | | | | | | | | 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
* droiddoc accepts aidl files as inputsJiyong Park2018-05-231-0/+10
| | | | | | | | | | | | | 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
* java_sdk_library does the apicheck by defaultJiyong Park2018-05-151-14/+40
| | | | | | | | | | | | | | | | 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
* Apicheck Support in SoongNan Zhang2018-05-081-0/+1
| | | | | | | | | | 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
* Add prebuilt_etc_xmlJiyong Park2018-04-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 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
* Adding java_sdk_libraryJiyong Park2018-04-191-0/+61
| | | | | | | | | | | | | | | | | | | | | | | 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
* Fix few issues with filegroupsPirama Arumuga Nainar2018-04-181-1/+1
| | | | | | | | | | | | | | | | | | | | 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
* Migrate soong to use new sdk prebuilts.Anton Hansson2018-04-181-15/+12
| | | | | | | | Make is moved over in aosp/661963. Bug: 77525052 Test: make Change-Id: I04ea58964df3d4149ef09ab7ca9238336d338a06
* Add support for android_library modulesColin Cross2018-04-161-0/+1
| | | | | | | | | 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
* Expose ProductVariables from TestConfigDan Willemsen2018-04-111-1/+1
| | | | | | | | | In preparation for unexporting ProductVariables, explicitly return a pointer to the structure from TestConfig / TestArchConfig. Bug: 76168832 Test: m blueprint_tools Change-Id: Iccfb4c912f8e0ee3f620cc1ee00f0cdc5cba7735
* Allow wildcards in java_resource_dirsColin Cross2018-04-101-11/+23
| | | | | | | | | | 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
* Use built SDK stubsColin Cross2018-04-101-11/+6
| | | | | | | | | | | | | 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
* Link type check for Android.bp defined Java modulesJiyong Park2018-03-281-0/+2
| | | | | | | | | | | | | | | | 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)
* Add support for renamed kotlin stdlib.Przemyslaw Szczepaniak2018-03-201-0/+14
| | | | | | | | | | | | | | | | | | 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
* Extract failIfErrored() to android/testing.goLogan Chien2018-03-151-12/+2
| | | | | | Bug: 74506774 Test: lunch aosp_walleye-userdebug && make # runs unit tests Change-Id: I1c09412d5988dca2cc1c5f041893b313ab1c163a
* Add droiddoc_templateDan Willemsen2018-03-011-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Change name of droiddoc target output to *-stubs.srcjarNan Zhang2018-02-281-2/+2
| | | | | | Test: m -j core-docs Bug: b/70351683 Change-Id: If8c00a9992d262b7cd4c95794073591dcc245bd2
* Droiddoc Support in SoongNan Zhang2018-02-221-0/+37
| | | | | | | | | | | | | | | | | | | | | | | Support Droiddoc to Soong based on core/droiddoc.mk. The non-std doclet based droiddoc compilation output is a "real" stubs.jar instead of a directory of java files and a timestamp file. The std doclet based javadoc compilation output is a "empty" stubs.jar instead of a timestamp file. The stubs.jar will be exported to out/target/common/obj/JAVA_LIBRARIES/$(LOCAL_MODULE)_intermediates/classes.jar and out/target/common/docs/$(LOCAL_MODULE)-stubs.jar A $(LOCAL_MODULE).zip file will be generated also, and is exported to out/target/common/docs/$(LOCAL_MODULE)-docs.zip if property: installable is not set to false. Bug: b/70351683 Test: unittest + convert libcore docs Android.mk to Soong manually. Change-Id: I1cffddd138a5d9d445f86a3d4a3fd4de88a2bc0f (cherry picked from commit 78188ec622cb1ee24171455867fc58ffab91562e)
* Revert "Revert "Support filegroup in exclude_srcs""Nan Zhang2018-02-151-10/+39
| | | | | | | | | This reverts commit 606e9de344fae07473dd79e5ac556886a72035de. Reason for revert: <try to fix the broken build yesterday> Change-Id: I2963b9af63c7c7398159e5e9a1e448266e1c81d5 Test: unittest
* Revert "Support filegroup in exclude_srcs"Tobias Thierer2018-02-091-39/+10
| | | | | | | | | | This reverts commit f36a3d9b6da654bf8bd7a49315b1625cf0e774ce. Reason for revert: Broke several builds. I'm acting build cop, reverting. Bug: 70351683 Change-Id: I775ada4e9cb6473519d51420b41b818af163da44
* Support filegroup in exclude_srcsNan Zhang2018-02-071-10/+39
| | | | | | Test: add unit-test, m -j32 Bug: b/70351683 Change-Id: Iff83c56d45dd668d9df6131c7df2e23e5c73a21b
* Support sdk_version: "core_current"Jiyong Park2018-02-071-0/+9
| | | | | | | | | | | | | | core_current is a pseudo SDK version which is a core Java API subset of the Android API. It is expected to be mainly used for external Java projects which are agnostic to Android; such as junit, guava, etc. A module built with this SDK version can only link to java modules of the same kind. It can't depend on modules built with other sdk (e.g. current) or without sdk. Bug: 72206056 Test: m -j Change-Id: I778e7b4fcb9456a12b418ffd633ea78e29951e84
* Add PLATFORM_SYSTEMSDK_VERSIONS and BOARD_SYSTEMSDK_VERSIONSJiyong Park2018-01-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PLATFORM_SYSTEMSDK_VERSIONS is the list of System SDK versions that the platform is supporting. Contrary to the public SDK where platform essentially supports all previous SDK versions, platform support only a few recent System SDK versions, since some of old System APIs are gradually deprecated, removed from the following SDKs and then finally deleted from the platform. This will be part of the framework manifest. The list can be specified by setting PLATFORM_SYSTEMSDK_MIN_VERSION. If it is set to an old version number, then System SDKs from the version to the current version (PLATFORM_SDK_VERSION) are considered to be supported by the platform. If PLATFORM_SYSTEMSDK_MIN_VERSION is not set, only the latest System SDK version is supported. Next, BOARD_SYSTEMSDK_VERSIONS is the list of System SDK versions that the device is using. This is put to the device compatibility matrix device is using. The device and the platform is considered as compatible only BOARD_SYSTEMSDK_VERSIONS in the device compatibility matrix are in the PLATFORM_SYSTEMSDK_VERSIONS in the framework manifest. When BOARD_SYSTEMSDK_VERSIONS is set, a Java app or library in vendor or odm partitions which didn't specify LOCAL_SDK_VERSION is forced to use System SDK. Also, the build system does the additional integrity check to ensure that LOCAL_SDK_VERSION is within BOARD_SYSTEMSDK_VERSIONS or PLATFORM_SYSTEMSDK_VERSIONS (if BOARD_SYSTEMSDK_VERSIONS isn't set). Bug: 69088799 Test: m -j Test: BOARD_SYSTEMSDK_VERSIONS=P m -j Change-Id: Id38f02b4be86710411be22bc28109e6894f8a483
* Add R8 supportColin Cross2018-01-031-0/+3
| | | | | | | Add support for R8 to optimize apps and java libraries. Test: m checkbuild Change-Id: I2afd5d7a84912d3ab613c32c599bd1ebe60562e0
* Pass OpenJDK 8's bootclasspath for host tools targeting <= 1.8.Colin Cross2018-01-021-9/+20
| | | | | | | | | | | | Follow the Make change in I9b6081edfdd2c3e9a450ae8a39c4e32c3d2cda92 to explicitly pass the OpenJDK 8 bootclasspath when targeting <= 1.8. Bug: 70862583 Test: java_test.go Test: javap -c -p out/soong/.intermediates/external/guava/guava/linux_glibc_common/javac/classes/com/google/common/hash/AbstractStreamingHashFunction\$AbstractStreamingHasher.class | grep ByteBuffer.flip shows java/nio/Buffer return type in signature. Change-Id: Ief66bbf6e3a4220b3afb2e02009bd0157d4c7fae
* Add missing dependencies on classpath jars for kotlincColin Cross2017-12-161-19/+37
| | | | | | | | The kotlinc build rules were missing dependencies on the jars in the classpath. Test: TestKotlin in java_test.go Change-Id: I56681785289f942b1070751b7dc5944e7a995b7f
* Split java_binary modules into common and binary variantsColin Cross2017-12-061-0/+35
| | | | | | | | | | | | Add a common_first multilib type and use it for java.Binary so that the java part is compiled as a "common" arch type but the wrapper script is installed as a "linux_glibc" arch type. This allows java_binary to be used as a tool dependency for a genrule. Bug: 68397812 Test: TestJavaBinary Change-Id: I809060839ce8878300da3fb76426ceb1ea6b0e8e
* Add java_genrules to use jars as inputs and outputsColin Cross2017-12-061-0/+55
| | | | | | | | | | | Add a java_genrule that has the right multilib flags to be a dependency of a java rule. Make java libraries implement SourceFileProducer so that their classes jar can be used as an input to a java_genrule. Allow libs and static_libs dependencies to be a java_genrule. Test: TestJarGenrules Change-Id: Ib1b31ef9c0b7e72eeed2c9ecc4ce8a1088e0b1c9
* Split up testJavaWithEnvFsColin Cross2017-12-011-16/+27
| | | | | | | | | | | Instead of passing all the options to testJavaWithEnvFs, split it up into testConfig, testContext, and run. Tests that don't need any special options can continue to use testJava, more complicated tests can call the three functions manually. This gives more flexibility in complicated tests for the next patch. Test: soong java tests Change-Id: Ifd5dcb40cf08e4cbf69bf8e02c5698adbfbcdcb3
* Add system_$(VER)Sundong Ahn2017-12-011-0/+10
| | | | | | | | | | The system_$(VER) is added for vendor, similar to sdk. Bug: 67724799 Test: build Merged-In: I2545c92707591ca278066870c74e9f49e9825855 Change-Id: I2545c92707591ca278066870c74e9f49e9825855 (cherry picked from commit b8baff1fa353a311c3dd918dfa29ec45dd0168be)
* Allow building framework.jar and framework-res.apkColin Cross2017-11-291-0/+11
| | | | | | | | | | Update app support enough to build framework-res.apk, link framework.jar against its generated files, and export it to make. Bug: 69917341 Test: m checkbuild tests docs Change-Id: I7db29cd1f5fabb22e844483ecc7c38abfedbbe0a
* Replace aapt support with aapt2Colin Cross2017-11-291-0/+1
| | | | | | | | | Use aapt2 instead of aapt to compile Android app resources. Also generate all files into srcjars instead of individual sources. Test: m checkbuild Change-Id: I5a67991a0daf0017e8159b46fcff7d5564a91468
* Move java test resources in mock filesystem to a different directoryColin Cross2017-11-241-29/+36
| | | | | | | | | Move the java test resources from res to java-res to avoid confusion with Android app resources that are implicitly expected in res. Also allow tests to provide extra files. Test: java_test.go Change-Id: I13349a21da5c6d449cd23947c2628efbed3eb230
* Pass results of Finder into BlueprintJeff Gaston2017-11-081-1/+1
| | | | | | | Bug: 64363847 Test: m -j Change-Id: I79db8c524af6e77c35a0199ec1876e5eb94e8971
* Support Javac sharding in Soong.Nan Zhang2017-11-061-0/+66
| | | | | | Test: m clean && m -j java and java_test.go Change-Id: I110a0ff029448d3319aed2788d25d90a6c1a7fa0
* Fix kotlin -classpath argumentColin Cross2017-10-261-0/+12
| | | | | | | | | | kotlinc expects -classpath, not --classpath. Also add a test that uses only .kt files to exercise the code when there are no java sources. Test: java_test.go Change-Id: Ifa5a007b460b40ea2188d0907570fbdca6c48da7
* Support multiple outputs in genrules with depfile: trueColin Cross2017-10-201-3/+3
| | | | | | | | | Ninja doesn't support depfiles on a rule with multiple outputs. Use a single output and put all the rest as implicit outputs. Bug: 68057449 Test: java_test.go Change-Id: Ia544493b1b3b51b185c865149d8f3e0eb3c57ee2
* Use prebuilts/sdk/*current until Soong can generate stubsColin Cross2017-10-201-11/+17
| | | | | | | | The android_*stubs_current modules don't yet exist, so fall back to the prebuilt jars for now. Test: m checkbuild Change-Id: Iabd32b30954b3f4a6d9a779fde52a032b684807e
* Support Turbine in Soong.Nan Zhang2017-10-201-12/+16
| | | | | | | | | | | If sdk jars(android_stubs_current, etc) are compiled using soong java modules, we have to filter them when running Java build with Turbine. TODO: provide more unit-tests. Test: m clean && m -j32; go test java_test Change-Id: Iad7c241b0e8b0ca760950733f513124b56c84564
* Move all jar intermediates to subdirsColin Cross2017-10-191-10/+10
| | | | | | | | | Make all the jar intermediates called modulename.jar, and put each in a subdir for the tool that generated it. This will simplify using the jars as inputs to genrules and resources. Test: java_test.go Change-Id: If00e16bd7df5a4ba24ebc4b68c9ccf2cfda49544
* Initial kotlin supportColin Cross2017-10-171-0/+34
| | | | | | | | | Allow java libraries to specify .kt sources, precompile them with kotlin, and then pass them in the classpath to javac. Bug: 65219535 Test: java_test.go Change-Id: Ife22b6ef82ced9ec26a9e5392b2dadacbb16546f
* Initial support for converting jars to java9 system modulesColin Cross2017-10-161-27/+100
| | | | | | | | | | | | | | | Adds a java_system_modules module type that (when EXPERIMENTAL_USE_OPENJDK9 is set to true) converts a list of java library modules and prebuilt jars into system modules, and plumbs the system modules through to the javac command line. Also exports the location of the system modules to make variables, as well as the name of the default system module. Test: TestClasspath in java_test.go, runs automatically as part of the build Bug: 63986449 Change-Id: I27bd5d2010092422a27b69c91568e49010e02f40
* Let tests override environmentColin Cross2017-10-101-1/+1
| | | | | | | | Pass an environment to TestConfig that will be used for all Config.Getenv calls. Test: none Change-Id: I683cd9c9e0db61c9bfd2adb27fca78f558f225c4
* Add test for java generated sourcesColin Cross2017-10-091-0/+34
| | | | | | Bug: 67364649 Test: TestGeneratedSources Change-Id: I5400e4b013dc47c04b9d32787e50c5281033484d
* Correctly add dependencies to java_resource_dirs filesColin Cross2017-10-041-8/+8
| | | | | | | | | | | | | java_resource_dirs was using a file list file that was generated at ninja time to get the list of files to include, which meant there were no dependencies on the files to cause res.jar to get rebuilt. Switch to using a glob at soong time instead. This is substantially similar to a glob in java_resources, except that java_resource_dirs strips the listed directories off the paths that end up in the jar. Test: TestResources in java_test.go Change-Id: I4b9b38f7b6b38a013cbb4e211187e7282a6795c0
* Fix bootclasspath for host variants of java_library modulesColin Cross2017-10-041-6/+21
| | | | | | | | | | | The partial hostdex support was causing the host variant of java_library modules to depend on core-oj and core-libart, which caused the tagsoup jar to use the wrong java.lang.System.arraycopy signature. Remove the hostdex code that was causing the problem, and add a test. Test: java_test.go Change-Id: I4f7b1f29c99aae328ba19b042538d9d35544aa43
* Fix arch specific properties for java modulesColin Cross2017-10-021-1/+20
| | | | | | | | Arch specific properties were not being applied to modules with OS set to Common. Test: java_test.go Change-Id: I8f1b49ca51b0cf96f78006dfcd121672e581d9c5
* Make java_library_static uninstallable by defaultColin Cross2017-10-021-1/+1
| | | | | | | | Static libraries are not dexed and are not installable on a device. Test: m -j checkbuild Change-Id: Iea01df381e6c8cf2439fdb87200895db6aac99e2
* Fix excluding resource directoriesColin Cross2017-10-031-0/+38
| | | | | | | | Using a glob as a path failed the existence check. Append the glob after converting the path to a string. Test: TestExcludeResources in java_test.go Change-Id: Ic1fd40aa283f3b0d59c1c589dbeec411583eddf1