Commit Graph

60934 Commits

Author SHA1 Message Date
Dmitry Savvinov 56286cd4dc Fix overly restrictive cast to allow running multiplatform tests for objects
^KT-35480 Fixed
2020-01-24 11:00:17 +03:00
Dmitry Savvinov 77a7ceaa55 Add test on object with tests in common module
^KT-35480 In Progress

(current behavior is undesired, see fix in next commit)
2020-01-24 11:00:17 +03:00
Dmitry Savvinov f78ea75431 Fix running tests from expect class by using FakeLightClasses
Unfortunately, IJ API requires us to return instances of
PsiClass/PsiMethod in order to proceed with run configuration creation.

In fact, those instances will be queried only by trivial requests, like
containingFile or name. Therefore, full-blown LightClasses are not
needed and even harmful, because for some declarations we can not build
proper light classes (like for expect declarations, for example)

Previously it mostly worked because most of declarations in common
indeed have corresponding Light-instances (because common source-set can
be seen from Java through JVM-part of a project).

^KT-34503 Fixed
2020-01-24 11:00:16 +03:00
Dmitry Savvinov cea612cba4 Add test on expect class with test methods inside
^KT-34503 In Progress

(current behaviour is undesired, see next commit for fix)
2020-01-24 11:00:16 +03:00
Dmitry Savvinov 36aa14ead4 Add testing support for MPP projects 2020-01-24 11:00:16 +03:00
Dmitry Savvinov b34f091fa4 Introduce tests runner for run configurations + highlighting + Gradle
This allows us to check two things:
- presence of line markers (haven't been checked by old
  GradleTestRunConfigurationTests, though could've been checked by
  LineMarkerTests)
- some properties of run configurations which will be created from those
  line markers

Old GradleTestRunConfigurationTest have been renamed to
GradleTestRunConfigurationCustomTest and slightly modified to be able
to re-use the same testdata if necessary.
2020-01-24 11:00:16 +03:00
Dmitry Savvinov 4f5c3d1387 Allow rendering extra tags for lineMarkers in tests 2020-01-24 11:00:16 +03:00
Dmitry Savvinov 5800160ee1 Rewrite GradleDaemonAnalyzerTest
Previously, GradleDaemonAnalyzer reused common IJ infrastructure for
highlighting tests (see DaemonAnalyzerTеstCase, ExpectedHighlightingData
and such).

Unfortunately, this infrastructure had several flaws,
mainly around checking expected highlighting against actual one:

- overlapping line markers lead to crash (fixed in 193+)

- no way to sanitize descriptions of line markers (important for cases
where description returns HTML-formatted text, which makes testdata
completely unreadable and also drives parser insane)

- thrown FileNotFoundException doesn't have a physical file with
expected testdata attached, which makes browsing diff a little less
convenient (no way to apply changes to expected file)

- no easy way to plug-in with additional after-highlighting checks

This commit fixes it by overriding doCheckResult and providing custom
checking of highlighting/line markers, based on TagsTestDataUtil.
Because we don't rely on IJ-checking anymore, we also remove weird hoops
with removing/adding testdata markup in checkFiles.
Also this commit adds strings sanitization in TagsTestDataUtil, removing HTML-tags
and line breaks, so that description of tag is always one-liner with
plain text.
2020-01-24 11:00:16 +03:00
Dmitry Savvinov a02e5d452f Minor: remove unnecessary callback from checkFiles
Filter list of files on call-sites instead
2020-01-24 11:00:16 +03:00
Dmitriy Novozhilov 3dfad4f0c3 [FIR] Fix generating properties for varargs in primary constructors 2020-01-24 10:57:52 +03:00
Dmitriy Novozhilov 69927409fc [FIR] Fix exhaustiveness check when subject has flexible type 2020-01-24 10:57:52 +03:00
Anton Yalyshev 0f049fd536 Properly handle a case when Code Style settings = null 2020-01-24 10:14:46 +03:00
Abduqodiri Qurbonzoda e89893b6fd Optimize ArrayDeque tests run time 2020-01-24 05:52:18 +03:00
Ilya Gorbunov 8733d5f9ed ArrayDeque: avoid triggering JDK 1.6 bug in tests
Use System.arraycopy instead of Arrays.copyOfRange to
avoid triggering JDK-7174363 bug in copyOfRange.

Fix package of ArrayDequeTest
2020-01-24 01:39:48 +03:00
Vladimir Dolzhenko 6352cded1b Add modCounter to invalidate synthetic file cache
#KT-35186 Fixed
2020-01-23 21:18:13 +01:00
Mark Punzalan 7329a1641a [JVM IR] Fix lambdaInLocalFunction.kt by adding helper methods that
return the target backend under test.
2020-01-23 19:16:27 +01:00
Andrey Uskov beb3165839 Added FUS extensions and new metrics for reporting statistics from gradle 2020-01-23 20:47:21 +03:00
Andrey Uskov bac0309a9b Added tests to gradle statistics reporter 2020-01-23 20:47:20 +03:00
Andrey Uskov 33d89e15b5 Metric description and anonymization rules added
Added metrics and their anonymization rules added. Persisted gradle
statistical information will not contain any sensitive information.
#KT-33404 Fixed
2020-01-23 20:47:19 +03:00
Andrey Uskov 763e02b3e8 Collecting performance information in Gradle plugin supported
The build performance information is collected during the build
when the Kotlin Gradle plugin is applied. Only hashed values are
saved if they may contain sensitive information. Numeric metrics
obtained on the basis of user's project are saved with random seed.
Persisted information is saved in gradleUserHomeDir.

#KT-33404 Fixed
2020-01-23 20:47:19 +03:00
Andrey Uskov e1d03e1f3a Open files leak on incremental compilation fixed
#KT-25206 Fixed
2020-01-23 20:47:18 +03:00
Andrey Uskov 44edfc3717 Do not show warnings when some projects are not generated before import
#KT-35442 Fixed
2020-01-23 20:45:26 +03:00
Ilya Gorbunov 76759d3a5f Drop compatibility stub for experimental unsigned API from 1.3.0 2020-01-23 19:38:02 +03:00
Ilya Gorbunov 39078342ee Remove mod function deprecation tests
#KT-26654
2020-01-23 19:28:23 +03:00
Ilya Gorbunov b1766b167f Remove mod function usage from tests
#KT-26654
2020-01-23 19:28:23 +03:00
Ilya Gorbunov 9fffa61596 Update builtin serialization tests
#KT-26654
2020-01-23 19:28:22 +03:00
Ilya Gorbunov 8f37ace9ee Finally drop deprecated mod functions from numeric types
#KT-26654
2020-01-23 19:28:22 +03:00
Pavel Kirpichenkov 06550a6d31 [NI] Actualize spec tests, affected by KT-35668
Update test data, remove obsolete 'UNEXPECTED BEHAVIOUR'
2020-01-23 19:12:02 +03:00
Pavel Kirpichenkov 78c9bbcc0d [NI] Soften restictions on using Nothing as proper constraint for full call completion
Consider lower `Nothing` constraint non-proper only if there is a dependant not analyzed postponed atom.
Early completion to `Nothing` provides data flow info for smart casts.

KT-35668 Fixed
2020-01-23 19:12:01 +03:00
Mikhail Zarechenskiy f1d9177112 [NI] Fix issue with returning non-deparenthesized lambdas from labmdas
#KT-36080 Fixed
2020-01-23 18:56:02 +03:00
Mikhail Zarechenskiy 6b07ef42dd [NI] Update testdata for NI after switching language versions 2020-01-23 18:56:01 +03:00
Mikhail Zarechenskiy 7bd7db839d [NI] Fix adapting arguments for callable references with receivers
#KT-35912 Fixed
2020-01-23 18:56:00 +03:00
Leonid Startsev 43858e8169 Do not include annotations and KDoc into NO_EXPLICIT_VISIBILITY_IN_API_MODE report range
Rename positioning strategy to better reflect its behavior.
#KT-36021 fixed.
2020-01-23 17:05:51 +03:00
Leonid Startsev 4285c6045a Fix unavailable 'Specify visibility explicitly' quickfix
in explicit API mode due to incorrect cast.
Add tests for applying this quickfix.
#KT-36020 fixed.
2020-01-23 17:05:50 +03:00
Dmitry Gridin f44fa67a51 Fix compilation for 192 2020-01-23 18:55:06 +07:00
Dmitriy Novozhilov 194d5a61dc [FIR-TEST] Add tests with problems of fir resolve 2020-01-23 14:52:56 +03:00
Dmitriy Novozhilov f68542e651 [FIR] Add FirEnumEntry to HTML dump 2020-01-23 14:31:33 +03:00
Dmitriy Novozhilov 14cf7a3d16 [NI] Add collecting forgotten type variables from callable references
#KT-35959 Fixed
2020-01-23 14:30:28 +03:00
Dmitriy Novozhilov be74e92c27 [NI] Add missing type variables to common system in builder inference
#KT-35967 Fixed
2020-01-23 14:30:28 +03:00
Anton Yalyshev 6d49f36cd6 Add bunches for unsupported versions 2020-01-23 14:21:06 +03:00
Anton Yalyshev 1d7dcf3633 Add Formatter settings tracking to FUS 2020-01-23 14:21:05 +03:00
Anton Yalyshev 7c0d8ad6c7 Add languageVersion tracking to FUS 2020-01-23 14:21:05 +03:00
Dmitry Gridin 556814e9b6 TrailingCommaVisitor: add checkCanceled for the recursive case
#KT-34744
2020-01-23 18:02:29 +07:00
Dmitry Gridin 522ae4945e TrailingCommaPostFormatProcessor: convert mapNotNull to filter
#KT-34744
2020-01-23 18:02:29 +07:00
Roman Golyshev a2b2c47b51 KT-34795 Use maven(...) instead of maven { setUrl(...) } for gradle scripts generation
- Use new syntax in tests, but not in actual gradle files
- Reuse public `toKotlinRepositorySnippet` instead of private one
- ^KT-34795 Fixed
2020-01-23 13:45:16 +03:00
Roman Golyshev 3dbc058db9 KT-34795 Remove obsolete Gradle 3.5 test data
- Tests do not run with Gradle 3.5 anymore
2020-01-23 13:45:16 +03:00
Dmitry Gridin 7627834dd0 TrailingCommaInspection: report Missing trailing comma on argument
#KT-34744
2020-01-23 17:36:38 +07:00
Dmitry Gridin 5aa413014b FormatterUtil: cleanup code 2020-01-23 17:36:38 +07:00
Dmitry Gridin 80194dd536 Trailing comma: cleanup code after review
#KT-34744
2020-01-23 17:36:38 +07:00
Dmitry Gridin ac8a8ecab4 ktPsiUtil: cleanup code 2020-01-23 17:36:38 +07:00