From 21637c828ead1e6cf4f157b46004a45712aaf342 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Sch=C3=A4fer?= Date: Thu, 2 Apr 2020 12:25:50 +0200 Subject: [PATCH] Parcelize: Add a test for Java interop (KT-25807) --- .../parcel/ParcelBoxTestGenerated.java | 5 +++ .../parcel/ParcelIrBoxTestGenerated.java | 5 +++ .../testData/parcel/box/javaInterop.kt | 33 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 plugins/android-extensions/android-extensions-compiler/testData/parcel/box/javaInterop.kt diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java index 7a7c142c4f3..b83f9686766 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java @@ -94,6 +94,11 @@ public class ParcelBoxTestGenerated extends AbstractParcelBoxTest { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/intArray.kt"); } + @TestMetadata("javaInterop.kt") + public void testJavaInterop() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/javaInterop.kt"); + } + @TestMetadata("kt19747.kt") public void testKt19747() throws Exception { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt19747.kt"); diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java index 242dd1ec419..5673124dd47 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java @@ -94,6 +94,11 @@ public class ParcelIrBoxTestGenerated extends AbstractParcelIrBoxTest { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/intArray.kt"); } + @TestMetadata("javaInterop.kt") + public void testJavaInterop() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/javaInterop.kt"); + } + @TestMetadata("kt19747.kt") public void testKt19747() throws Exception { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt19747.kt"); diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/javaInterop.kt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/javaInterop.kt new file mode 100644 index 00000000000..a15422fc186 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/javaInterop.kt @@ -0,0 +1,33 @@ +// IGNORE_BACKEND: JVM +// This issue affects AIDL generated files, as reported in KT-25807 +// WITH_RUNTIME +// FILE: J.java +import android.os.Parcel; +import test.K; + +public class J { + public static K readParcel(Parcel parcel) { + return K.CREATOR.createFromParcel(parcel); + } +} + +// FILE: test.kt +package test + +import kotlinx.android.parcel.* +import android.os.Parcel +import android.os.Parcelable + +@Parcelize +data class K(val x: Int) : Parcelable + +fun box() = parcelTest { parcel -> + val first = K(0) + first.writeToParcel(parcel, 0) + + val bytes = parcel.marshall() + parcel.unmarshall(bytes, 0, bytes.size) + + val second = J.readParcel(parcel) + assert(first == second) +}