Files
kotlin-fork/native/native.tests
Svyatoslav Scherbina 2cdf8cd7b1 Native: support Objective-C instancetype in more cases in cinterop
Objective-C has a special type, "instancetype". Generally, it is a type
that matches the method receiver type. So, if `Foo.foo` method returns
`instancetype`, then `Foo.foo()` would be of type `Foo`, while
`Bar.foo()` would be of type `Bar` (where `Bar` is a subclass of `Foo`).

Surprisingly, `instancetype` can be used not only as a return type, but
also somewhere inside a return type. cinterop wasn't ready for this.

This commit expands implementation of `instancetype` in cinterop to
cover more cases.

^KT-59597 Fixed
2023-12-14 08:57:29 +00:00
..

Running tests

  • To run all tests, use ./gradlew :native:native.tests:test. Please note, this Gradle task is available only in development environment and it not available at CI server.
  • To execute certain tests only, use the appropriate Gradle tasks. Example: ./gradlew :native:native.tests:codegenBoxTest
  • To execute InteropIndexer tests for all targets, use:
for TARGET in android_x64 android_x86 android_arm32 android_arm64 \
              ios_arm32 ios_arm64 ios_x64 ios_simulator_arm64 \
              linux_x64 linux_arm64 linux_arm32_hfp linux_mips32 linux_mipsel32 \
              macos_x64 macos_arm64 \
              mingw_x86 mingw_x64 \
              tvos_arm64 tvos_x64 tvos_simulator_arm64 \
              wasm32 \
              watchos_arm32 watchos_arm64 watchos_x86 watchos_x64 watchos_simulator_arm64 watchos_device_arm64
do
  echo $TARGET             
  ./gradlew :native:native.tests:interopIndexerTest -Pkotlin.internal.native.test.target=$TARGET
done
  • To re-generate tests, use ./gradlew :native:native.tests:generateTests

For more details see Testing.