c7435ba760
We are going to deprecate `WITH_RUNTIME` directive. The main reason behind this change is that `WITH_STDLIB` directive better describes its meaning, specifically it will add kotlin stdlib to test's classpath.
42 lines
1.1 KiB
Kotlin
Vendored
42 lines
1.1 KiB
Kotlin
Vendored
// IGNORE_BACKEND: JVM
|
|
// See KT-38103
|
|
// There is no such thing as a readStrongInterface method to deserialize arbitrary IIinterface implementations
|
|
// WITH_STDLIB
|
|
|
|
@file:JvmName("TestKt")
|
|
package test
|
|
|
|
import kotlinx.android.parcel.*
|
|
import android.os.Binder
|
|
import android.os.IBinder
|
|
import android.os.IInterface
|
|
import android.os.Parcel
|
|
import android.os.Parcelable
|
|
import java.io.Serializable
|
|
|
|
class MockBinder : Binder(), Serializable
|
|
|
|
@Parcelize
|
|
class MockIInterface : IInterface, Parcelable {
|
|
override fun asBinder(): IBinder = MockBinder()
|
|
}
|
|
|
|
@Parcelize
|
|
class ServiceContainer(
|
|
val binder: MockBinder,
|
|
val iinterface: MockIInterface,
|
|
val binderArray: Array<IBinder>,
|
|
val binderList: List<IBinder>
|
|
) : Parcelable
|
|
|
|
fun box() = parcelTest { parcel ->
|
|
val test = ServiceContainer(MockBinder(), MockIInterface(), arrayOf(MockBinder()), listOf(MockBinder()))
|
|
test.writeToParcel(parcel, 0)
|
|
|
|
val bytes = parcel.marshall()
|
|
parcel.unmarshall(bytes, 0, bytes.size)
|
|
parcel.setDataPosition(0)
|
|
|
|
val test2 = readFromParcel<ServiceContainer>(parcel)
|
|
}
|