Commit Graph

192 Commits

Author SHA1 Message Date
Pavel Punegov 8be2196ea9 [Native][test] Fix testLibrary dependency 2021-11-26 10:13:05 +00:00
Pavel Punegov d73f8ea44e [Native][Test] Fix platformLibs dependencies
Sanity tests should not run tests that depend on platform libs. Also
fix platform libs dependency setting
2021-11-26 10:13:04 +00:00
Nikolay Krasko af8faadca5 Update internal project junit dependency 4.12 -> 4.13.2 2021-11-24 19:35:31 +03:00
Svyatoslav Scherbina 9476d4c647 Native: use Gradle exec for jsinterop invocation in jsinterop_math test
The previous implementation didn't log anything, including stdout,
stderr and the command line, and didn't detect non-zero exit code,
making it hard to investigate the test failures.
2021-11-19 11:54:46 +00:00
Igor Chevdar cb71240938 [K/N] Supported outer this references from cached inline bodies 2021-11-18 17:52:57 +05:00
Nikolay Kasyanov 4dcfd38236 ObjCExport: remove KotlinUnit from suspend funs returning Unit (#4635)
With `unitSuspendFunctionObjCExport=proper` binary option,
for Unit-returning suspend functions ObjCExport now generates
completion handlers without redundant `KotlinUnit*` result parameter.

So Swift (5.5+) can import these functions as Void-returning async
functions.

^KT-47399 Fixed
2021-11-18 10:01:33 +03:00
Pavel Punegov 960ba3ffde [K/N] Excluded filecheck test on wasm32. See KT-49739 2021-11-17 09:40:52 +00:00
Svyatoslav Scherbina 2f5706597a IR: fix offsets in irTemporary
The variable generated by IrStatementBuilder.irTemporary doesn't inherit
startOffset and endOffset from the builder. In particular, as a result,
temporary variables generated for elvis operator left operand have
UNDEFINED_OFFSET.

Additionally, ProvisionalFunctionExpressionLowering copies the offsets
of a variable to lowered lambda in the variable initializer. With the
problem described above, this causes invalid debug information in
Kotlin/Native, see KT-49360.

Fix irTemporary by using builder's offsets for the variable.

^KT-49360 Fixed
2021-11-16 11:59:55 +00:00
Elena Lepilkina c06875b8e9 [K/N] Added test for exceptions behaviour in case of dynamic libs (KT-47828) 2021-11-16 10:44:53 +00:00
Dmitriy Dolovov a029b50755 [Native][tests] Enable codegen_box_callableReference/genericConstructorReference.kt 2021-11-15 18:15:42 +03:00
Pavel Punegov 475b3a452e [K/N][test] Disable tests on wasm due to ^KT-48738 2021-11-11 13:34:25 +00:00
Pavel Punegov e07fa31784 [K/N][build] Move KLibInstall to Konan gradle plugin 2021-11-11 12:16:26 +00:00
Pavel Punegov 151cb096ce [K/N][test] Replace genKt39548 task with doBeforeBuild closure 2021-11-11 12:16:25 +00:00
Svyatoslav Scherbina ea7160947a Native: enable lazy IR generation before running fake override builder
^KT-48816 Fixed

Native compiler uses lazy IR for declarations provided by cinterop.
The problem: `FakeOverrideBuilder` requests super types during
type checking, accessing `.owner` for them. So if a type and super type
are represented as lazy IR, and lazy IR generation is not enabled yet,
then the super type symbol won't be bound by this moment, and the access
will fail.

This happens in KT-48816: fake override builder tries to access `.owner`
for `IrClassSymbol` of `NSObject` (super type of `NSDate` and `NSUUID`).

Fix this by enabling lazy IR generation before building fake overrides.
2021-11-10 12:30:12 +00:00
Svyatoslav Scherbina c929404fa4 Native: don't treat any compiler test task as up-to-date
There are number of problems with up-to-date checks in tests, leading to
a test binary not being rebuilt or rerun when a developer expects it to.

Things became worse after updating to Gradle 7+:
test binary run tasks are considered up-to-date if the test data
has been changed, even after clean.

Even before Gradle 7+, we've observed other similar undesirable effects:
for example, if the compiler has been changed, tasks building
test binaries are still up-to-date.

There are quite a lot of different tasks related to running the tests
for Native, many of them are misused and thus don't do what we expect.
Carefully fixing each particular kind seems counterproductive and
unreliable.

So instead workaround all possible similar problems by forcing all tasks
in the :kotlin-native:backend.native:tests project to be not up-to-date.

This project should contain only test tasks, so this workaround
seems pretty natural -- it is just "tests aren't up-to-date".
2021-11-09 11:18:08 +00:00
Elena Lepilkina d8c9536edd [K/N] Fixes in tests and check function in optimized mode 2021-11-02 12:04:44 +00:00
Elena Lepilkina 23e5079391 [K/N] Added test for checking C callback set with Kotlin function throwing exception 2021-11-02 12:04:43 +00:00
Elena Lepilkina 751f1a3b91 [K/N] Added FileCheck for noreturn attribute absence for suspend functions 2021-11-02 12:04:42 +00:00
Sergey Bogolepov d072a3ca59 [K/N] Fix fileCheckTest temporary files dir 2021-10-29 04:07:31 +00:00
Sergey Bogolepov 95bd5fcc4b [K/N] Update filecheck tests for different ABIs 2021-10-29 04:07:31 +00:00
Sergey Bogolepov fdd020eab6 [K/N] Tests for function attributes in bitcode generator
Besides, well, tests themselves, this commit extends FileCheck infra to
make it possible to test bitcode for direct and reverse interop.
2021-10-29 04:07:30 +00:00
Alexander Shabalin c678702847 [K/N] Add tests on Atomic integers ^KT-49348 2021-10-27 13:54:35 +00:00
Elena Lepilkina 453e4b1830 [K/N] Added FileCheck tests on bound check elimination 2021-10-27 12:02:06 +00:00
Mikhail Glukhikh 37b95972db Uncomment warning about -Xopt-in deprecation 2021-10-26 13:38:40 +03:00
Svyatoslav Scherbina 99447a11c1 Native: fix ^KT-49384
Don't report errors for projections in nested type arguments of
SAM conversion target types.
2021-10-26 10:12:30 +00:00
Sergey Bogolepov 8d2234b37a Add a test for KT-49212 2021-10-18 07:19:11 +00:00
Igor Chevdar f1c1094393 [K/N][optmz] Fix for https://youtrack.jetbrains.com/issue/KT-49234 2021-10-15 14:08:17 +00:00
Pavel Kunyavskiy 533eb589cb [K/N] Add tests for static initialisation of ConstantValues 2021-10-14 11:22:28 +00:00
Pavel Kunyavskiy 5a4a78f2c6 [K/N] Throw exception on abstract class instantiation in ObjC 2021-10-08 11:39:43 +00:00
Elena Lepilkina 6bfa710e34 [K/N][tests] Added test for @ character in library name 2021-10-06 09:34:55 +00:00
Elena Lepilkina 416719c216 [KLIB] Removed support of pattern '<library_name>@<version>' (KT-42500 Fixed) 2021-10-06 09:34:55 +00:00
Sergey Bogolepov c9a0369805 [K/N] Add StubGenerator tests to sanity 2021-10-06 04:40:07 +00:00
Sergey Bogolepov b9bb56d9c6 [K/N] FileCheck-based tests
Introduce a simple infrastructure for testing produced bitcode with
FileCheck LLVM utility.

^KT-48925
2021-10-01 14:18:01 +00:00
Pavel Kunyavskiy 9f2035c43d [K/N] Don't assume all apple target support CoreSymbolication 2021-09-29 07:00:07 +00:00
Vyacheslav Gerasimov 2d06cf674b Build: Fix usages of deprecated convention in kotlin-native
Required for Gradle 7+ #KTI-559
2021-09-26 23:36:40 +03:00
Vyacheslav Gerasimov ab146bd6d4 Build: Fix deprecated Gradle configurations usages
for migration to Gradle 7+ #KTI-559
2021-09-26 18:28:44 +03:00
Alexander Shabalin da25e1bf21 [K/N] Enable a missing test 2021-09-23 12:57:29 +00:00
Ilya Matveev f93d5604aa [K/N] Warn if the inferred main package of a framework is root 2021-09-21 09:26:54 +00:00
Ilya Matveev bfe336b0db [K/N] Add an option to specify a bundle ID of a produced framework 2021-09-21 09:26:54 +00:00
Ilya Matveev 0dd41eea19 [K/N] Add test for framework's bundle ID 2021-09-21 09:26:52 +00:00
Pavel Kunyavskiy c704fd6ae7 [K/N] Support stacktrace using libbacktrace 2021-09-20 11:28:08 +00:00
Igor Chevdar e194a07358 [tests] Added some tests 2021-09-16 10:54:14 +00:00
Svyatoslav Scherbina ae349846e1 Native: support writing unit tests for Interop/Indexer 2021-09-14 10:42:16 +00:00
Igor Chevdar 23a02be169 [K/N][IR] Fix for https://youtrack.jetbrains.com/issue/KT-48527 2021-09-13 16:41:37 +05:00
Pavel Kunyavskiy 51c85e7f86 [K/N] Safer handling of bridges function in dce 2021-09-10 15:58:42 +00:00
Mikhail Glukhikh ffbd574a08 Use -opt-in instead of -Xopt-in in comments and scripts 2021-09-08 23:43:55 +03:00
Igor Chevdar e67a78abaf [K/N][codegen] Fix for https://youtrack.jetbrains.com/issue/KT-48543
Sometimes an interface contains final methods, they shouldn't be in its itable
cause they can't be called virtually
2021-09-07 12:04:26 +05:00
Abduqodiri Qurbonzoda 97eb28144f Introduce Common readln() and readlnOrNull() top-level functions #KT-48456 2021-09-05 15:31:11 +00:00
Ilya Matveev ce377e4a33 [K/N][tests] Enable dynamic tests for targets other than hosts 2021-09-03 06:11:10 +00:00
Pavel Kunyavskiy 98e4d67900 [K/N] Add opt-in flag to use debug info from native libs
Unfortunately, llvm removes full debug info from module on any error.
Different version debug info in bitcode is not always compatible, also
it adds this debug info additional requirements on generated debug info.

So this feature is quite unstable and shouldn't be enabled by default,
although it has almost no downsides when worked correctly.
2021-09-01 08:35:21 +00:00