From a22dcc0f145db2eda95935534727fc07c7092cbf Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Tue, 15 Feb 2022 12:35:25 +0300 Subject: [PATCH] [K/N] Test case for KT-51302 There is no infrastructure for testing klib ABI compatibility yet. As a workaround, we store klib directly in repo. --- kotlin-native/backend.native/tests/build.gradle | 6 ++++++ .../kt51302_dependency/default/ir/bodies.knb | Bin 0 -> 12 bytes .../kt51302_dependency/default/ir/debugInfo.knd | Bin 0 -> 12 bytes .../kt51302_dependency/default/ir/files.knf | Bin 0 -> 66 bytes .../default/ir/irDeclarations.knd | Bin 0 -> 80 bytes .../kt51302_dependency/default/ir/signatures.knt | Bin 0 -> 66 bytes .../kt51302_dependency/default/ir/strings.knt | Bin 0 -> 97 bytes .../kt51302_dependency/default/ir/types.knt | Bin 0 -> 33 bytes .../kt51302_dependency/default/linkdata/module | Bin 0 -> 24 bytes .../default/linkdata/root_package/0_.knm | Bin 0 -> 102 bytes .../KT-51302/kt51302_dependency/default/manifest | 8 ++++++++ .../tests/serialization/KT-51302/main.kt | 8 ++++++++ .../tests/serialization/KT-51302/readme.md | 10 ++++++++++ 13 files changed, 32 insertions(+) create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/bodies.knb create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/debugInfo.knd create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/files.knf create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/irDeclarations.knd create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/signatures.knt create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/strings.knt create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/types.knt create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/linkdata/module create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/linkdata/root_package/0_.knm create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/manifest create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/main.kt create mode 100644 kotlin-native/backend.native/tests/serialization/KT-51302/readme.md diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index 196eebe7541..737c72eaf9e 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -5222,6 +5222,12 @@ tasks.register("library_ir_provider_mismatch", KonanDriverTest) { } } +standaloneTest("kt51302") { + enabled = project.target.name == project.hostName + source = "serialization/KT-51302/main.kt" + flags = ["-l", "$projectDir/serialization/KT-51302/kt51302_dependency"] +} + standaloneTest("fake_override_0") { def sources = "$projectDir/link/fake_overrides" def dir = buildDir.absolutePath diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/bodies.knb b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/bodies.knb new file mode 100644 index 0000000000000000000000000000000000000000..8ae46fe653a2dea6ae9d403642ed2c8eb1a7b6df GIT binary patch literal 12 RcmZQzU|?imU|<1a1^@sl00sa6 literal 0 HcmV?d00001 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/debugInfo.knd b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/debugInfo.knd new file mode 100644 index 0000000000000000000000000000000000000000..8ae46fe653a2dea6ae9d403642ed2c8eb1a7b6df GIT binary patch literal 12 RcmZQzU|?imU|<1a1^@sl00sa6 literal 0 HcmV?d00001 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/files.knf b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/files.knf new file mode 100644 index 0000000000000000000000000000000000000000..1d57c18230289461e495850b824ff3b01e31655e GIT binary patch literal 66 zcmZQzU|?imV6ft1WDqjq($NnsPAw|d2NLP2m3m3}>G?US1^H$A<@rU~`raYBriR7_ TM*2CKNqX5OLQD+8Qj81$03;At literal 0 HcmV?d00001 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/irDeclarations.knd b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/irDeclarations.knd new file mode 100644 index 0000000000000000000000000000000000000000..f0d92e4cc46592f8dcfe50569cc95160826540fc GIT binary patch literal 80 zcmZQzU|?imVDJE95DfwXKx`po#>K_KCcq@o!J^Q{B)}-e2jq9N2(W+z7z6~hgrx+z W__??_8kvBK@)g<|m;_jj7#RWG2M1#S literal 0 HcmV?d00001 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/signatures.knt b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/signatures.knt new file mode 100644 index 0000000000000000000000000000000000000000..cdfa1f96937462438566b89e7bb3dff9811420a0 GIT binary patch literal 66 zcmZQzU|?imV6XyW79i#TVi6!_0QKr|C0v&7dqE&aP^Ex5dqQGo#@ J%O=Fg4giS+2W0>N literal 0 HcmV?d00001 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/strings.knt b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/strings.knt new file mode 100644 index 0000000000000000000000000000000000000000..aca9a7213fa0a5e4c47fb89e935bc7245e1853cc GIT binary patch literal 97 zcmZQzU|?imV2A`_4j={r5T6~0*??FON`u&3&MvNQo_?+_Hko;uC3c>E!6A-*&aUx6 huFkHWVXi?oB^jB;cG>wQIhlEmd3pIIi6xo&c>wsb65jv- literal 0 HcmV?d00001 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/types.knt b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/ir/types.knt new file mode 100644 index 0000000000000000000000000000000000000000..87d8cc03d33e2d909c5aac93e7b7dda29165a132 GIT binary patch literal 33 icmZQzU|?imV2}i2CLm@5Vs?jyAO!#kM*%4S literal 0 HcmV?d00001 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/linkdata/module b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/linkdata/module new file mode 100644 index 0000000000000000000000000000000000000000..af4f3b7bffeca5e00a5bc5638b2272e0799d07f9 GIT binary patch literal 24 fcmd-QvB@qmH8eIbicd)`NX<)0%}cJdvtj@MQ=bPb literal 0 HcmV?d00001 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/linkdata/root_package/0_.knm b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/linkdata/root_package/0_.knm new file mode 100644 index 0000000000000000000000000000000000000000..662681e30eca121fcb48273f8d7deaa69a240dd7 GIT binary patch literal 102 zcmd;*=VEl`V$04i$;r&);&RN(%P&bR$;{8=V#~=)(#tLplI7y(_zwe&0t^xiTucIt vTx=YS0!$JNQVdEG9BoWOj6iWGhEI$fTucT`ApC=i`2iQhD=vmlT#O6=*A*HR literal 0 HcmV?d00001 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/manifest b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/manifest new file mode 100644 index 00000000000..a04b516d4fe --- /dev/null +++ b/kotlin-native/backend.native/tests/serialization/KT-51302/kt51302_dependency/default/manifest @@ -0,0 +1,8 @@ +builtins_platform=NATIVE +unique_name=kt51302_dependency +compiler_version=1.6.10 +depends=stdlib +abi_version=1.6.0 +native_targets=macos_x64 +metadata_version=1.4.1 +ir_version=1.0.0 diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/main.kt b/kotlin-native/backend.native/tests/serialization/KT-51302/main.kt new file mode 100644 index 00000000000..845381babbf --- /dev/null +++ b/kotlin-native/backend.native/tests/serialization/KT-51302/main.kt @@ -0,0 +1,8 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +fun main() { + val c = C() +} \ No newline at end of file diff --git a/kotlin-native/backend.native/tests/serialization/KT-51302/readme.md b/kotlin-native/backend.native/tests/serialization/KT-51302/readme.md new file mode 100644 index 00000000000..07215f0d3be --- /dev/null +++ b/kotlin-native/backend.native/tests/serialization/KT-51302/readme.md @@ -0,0 +1,10 @@ +At the time of writing, there is no infrastructure for writing klib +compatibility tests. Instead, we store klib directly in repository. +`kt51302_dependency` was generated from `lib.kt` +```kotlin +annotation class C +``` +with the following command: +```commandline +~/.konan/kotlin-native-prebuilt-macos-x86_64-1.6.10/bin/konanc -p library lib.kt -nopack -o kt51302_dependency +``` \ No newline at end of file