Commit Graph

3643 Commits

Author SHA1 Message Date
Ilya Goncharov 3ca3842c3f Fix format 2019-09-30 16:50:41 +03:00
Ilya Goncharov fb97375f86 Remove redundant debug flag for karma start 2019-09-30 16:50:41 +03:00
Ilya Goncharov b22e56e1ba Fix IE karma alias 2019-09-30 16:50:41 +03:00
Ilya Goncharov bbe51469ee Add devtool property for webpack
- Use inline-source-map for karma-webpack
2019-09-30 16:50:41 +03:00
Ilya Chernikov 3220101c7b [minor] fix Gradle test broken on the build refactoring 2019-09-28 17:50:45 +02:00
Ilya Matveev 6b10336497 Common iOS: Store konanTarget in KotlinNativeCompilation 2019-09-27 18:06:56 +07:00
Ilya Chernikov 3430a21fa1 Add test to the scripting fixes for maven plugin
tests KT-34011 and KT-34006 fixes
2019-09-26 11:46:55 +02:00
Ilya Chernikov a1118ce209 Do not skip maven compilation if sources contain .kts files but no .kt files
#KT-34006 fixed
2019-09-26 11:46:55 +02:00
Vyacheslav Gerasimov c1e1dbd83e Build: Fix usages of "java.home" for tools.jar dependency
#KT-33984
2019-09-25 17:54:18 +03:00
Sergey Igushkin ece7a3e70e Add extensions with explicit Class<*> instance for Kotlin DSL, KT-31077 2019-09-25 15:46:07 +03:00
Sergey Igushkin 3abb1b3f40 Fix lint task in Android projects depending on MPP, KT-27170 2019-09-25 15:46:06 +03:00
Sergey Igushkin 032686ebe0 Fix kapt class structure configuration not resolving MPP deps, KT-33105 2019-09-25 15:46:06 +03:00
Sergey Igushkin 3deff3b347 Fix Kapt configuration not resolving MPP deps to JVM variants, KT-31641 2019-09-25 15:46:06 +03:00
Sergey Igushkin f2d2fb9e6b Fix Kapt-generated sources not compiled by jvm.withJava(), KT-32804
Given that the Kapt subplugin creates new tasks, it is impossible
to run it in the context of lazy task configuration. Disable lazy
task configuration for Kotlin/JVM by always accessing the task
instance until subplugins are refactored to be able to properly
work with task configuration avoidance.
2019-09-25 15:46:05 +03:00
Sergey Igushkin 0456220f7a Fix issues found in KOTLIN-CR-3233 2019-09-25 15:46:05 +03:00
Sergey Igushkin f0ef5a90b3 Add an integration test for the test runs API
Issue #KT-32679
2019-09-25 15:46:05 +03:00
Sergey Igushkin d1016f0221 Reimplement friend task/friend paths using associated compilations
Replace the old ad-hoc task matching mechanism used for connecting the
compilation tasks that need to share internal visibility with an
implementation based on the associate compilations and compilation
outputs rather than `destinationDir`s of the tasks.

The only place that still requires ad-hoc friend paths is the Android
instrumented tests compiling against the JAR of the main variant, not
its classes dirs. Support that with `friendArtifacts`.

Issue #KT-17630 Fixed
Issue #KT-20760 Fixed
2019-09-25 15:46:05 +03:00
Sergey Igushkin c4d9c4cee4 Group associated compilations into modules with a single module name
As associated compilations will see internals of each other, they now
need to share the module name for the compiler to be able to correctly
generate calls to the internals.

Move `moduleName` to `KotlinCompilation`.

Group associate compilations into modules in a DSU-like way, use a
single module name for all of the compilations grouped into a module.
2019-09-25 15:46:04 +03:00
Sergey Igushkin 94fd5c2884 Implement source sets visibility inference via associate compilations
Add non-public API for the IDE to query additional visible source sets
for each source set.
Implement visibility inference via associate compilation links.
Implement visibility requirements for source sets and requirements
satisfaction checks in Gradle build.
2019-09-25 15:46:04 +03:00
Sergey Igushkin 8c1c687e92 Implement associate compilations, KT-34009
Partial implementation of the associate compilations proposal. A
compilation can now contain links to other compilation that it compiles
against. This links will replace ad-hoc inter-compilation dependencies.

Issue #KT-34009 Fixed
2019-09-25 15:46:04 +03:00
Sergey Igushkin bb6f406be4 Partial cleanup & refactoring of the Android plugin
The `KotlinAndroidPlugin` used to support two different sets of APIs of
the Android Gradle plugin and used `AbstractAndroidProjectHandler` to
wrap those APIs. Now that there's only one implementation, it
doesn't need the generic `V` (variant data), and some cleanup is needed.
2019-09-25 15:46:03 +03:00
Sergey Igushkin 0e59553d12 Add Kotlin & Java destination dirs as output of Android compilation
The compilation outputs of Android compilations accidentally were left
empty. The `destinationDir`s of the Kotlin & Java tasks should be
registered in the `output.classesDirs`.
2019-09-25 15:46:03 +03:00
Sergey Igushkin 9836a1ca4a Make compilationsBySourceSets safe to use during evaluation
This function used to only calculate the mapping once and store it for
the project, so it was unsafe to use early. Fix that by evaluating the
value each time and then freezing it at the point of either task graph
being ready, or any task being executed.

Also, store the map in the project's `ext` rather than in a static weak
hash map, which is safer wrt memory leaks.
2019-09-25 15:46:03 +03:00
Sergey Igushkin 5dd4e0ed42 Track the compilation outputs as inputs of Gradle JS test tasks, KT-33313
Issue #KT-33313 Fixed
2019-09-25 15:46:02 +03:00
Sergey Igushkin 3011a3cf81 Create objects via Gradle ObjectFactory to allow access from Groovy 2019-09-25 15:46:02 +03:00
Sergey Igushkin fe50029beb Adjust task output detection for Gradle 4.9 2019-09-25 15:46:02 +03:00
Sergey Igushkin 43c3122a13 Drop Gradle versions older than 4.9
* Replace `TaskHolder` with `TaskProvider`, remove `TaskHolder`
* Migrate Gradle integration tests to Gradle 4.9+
2019-09-25 15:46:01 +03:00
Sergey Igushkin 9f0c5675bd Introduce execution & test run API, KT-32679
* KotlinExecution
* KotlinExecutionSource
* KotlinTestRun
* Aggregating executions and execution sources
* KotlinTargetWithTests

* Add a `testableTargets` extension
* Make some Kotlin/Native targets testable (this requires
  having a separate preset type for them)
* Implement test runs encapsulating the tests for all
  existing testable targets by refactoring their
  TargetConfigurator classes

Issue #KT-32679 Fixed
2019-09-25 15:46:01 +03:00
Ivan Gavrilovic f89885224e Add tests for running incremental KAPT on JDK9
Add test for aggregating incremental annotation processors and JDK9.
This makes sure the implementation is not using any types that have
been removed in JDK 9.
2019-09-25 19:21:10 +09:00
LepilkinaElena 594f4a6f56 New flag for KotlinNativeCompilation to enable endorsed libraries (#2618) 2019-09-25 10:28:09 +03:00
Ilya Goncharov bfc698a521 Add comment for log-reporter and its necessity 2019-09-24 14:36:11 +03:00
Ilya Goncharov 09e2ebe60a Both js targets use one TC service message classes 2019-09-24 14:36:11 +03:00
Ilya Goncharov 7d4b43f819 Remove annoying spaces in karma-teamcity-reporter 2019-09-24 14:36:10 +03:00
Ilya Goncharov b4e3cf1d7a Move teamcity reporting only to nodejs 2019-09-24 14:36:10 +03:00
Ilya Goncharov 46e82468e4 Provide logging through kotlin-test=js-runner 2019-09-24 14:36:10 +03:00
Ilya Goncharov f0e72c4d71 Remove mangling for kotlin-test-js-runner 2019-09-24 14:36:10 +03:00
Ilya Goncharov e59d1a0ef1 Use terser instead of uglify 2019-09-24 14:36:10 +03:00
Ivan Gavrilovic 6e7f046471 Fix gradle integeration tests
Fix test failure on Windows, where backslash was not escaped
in a build file. Also, remove obsolete test for Gradle 4.2,
because 4.3 is the minimum supported version.
2019-09-23 17:32:36 +09:00
Ilya Matveev 5c904250be Gradle, native: Update a K/N version in tests
Earlier, K/N 1.1 was used when testing the kotlin.native.version
property. But this version doesn't support the -no-endorsed-libs
flag add recently. This patch updates K/N version in tests.
2019-09-20 16:54:30 +07:00
Ilya Goncharov 31aa4e4738 Rename kotlin-test-nodejs-runner to kotlin-test-js-runner 2019-09-20 10:56:18 +03:00
Ilya Goncharov 10c36ae5c5 Change naming from commin cli.ts to concrete platform nodejs.ts 2019-09-20 10:56:17 +03:00
Ilya Goncharov c2b5df83f6 Add filtering feature to karma testing
- Now karma use generated adapter.js as input, in which right runner and
also all real input files are required

#KT-32216 fixed
2019-09-20 10:56:15 +03:00
Ilya Goncharov 09a602d8ad Move common logic of js test running on upper level (js) 2019-09-20 10:49:57 +03:00
Ilya Goncharov e750bd302d Add karma input for kotlin-test-nodejs-runner
- To set custom adapter for kotlin-test, it is necessary to inject adapting
code to webpack's input, so then it is executed inside browser and set
custom adapter
This code will be injected to webpack's input
2019-09-20 10:49:56 +03:00
Ilya Goncharov e242856124 Enable cli description to have free args title 2019-09-20 10:49:56 +03:00
Ilya Goncharov 80ea91f574 Extract Adapter getting to common place 2019-09-20 10:49:56 +03:00
Ilya Goncharov b44249255c Extract default cli parser to common place 2019-09-20 10:49:56 +03:00
Ilya Goncharov f0af4756a9 Fix accuracy for regex filtering for nodejs testing 2019-09-20 10:49:56 +03:00
Ilya Goncharov e2aecee925 Fix exact test filtering for nodejs 2019-09-20 10:49:56 +03:00
Ilya Matveev 1b64583855 Gradle, native: Embed bitcode for watchOS and tvOS 2019-09-20 12:52:48 +07:00