diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-02-26 14:58:25 +0100 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-02-26 14:58:25 +0100 |
| commit | 5ba686d1ac45509cba636d717bb6729865105cf3 (patch) | |
| tree | e21ad8d6ca30a8ca6a02313c9b4cc786370dc91e /android/test/e2e | |
| parent | 5025db74b34cfb3536c43f89f3407ffc0d97ae73 (diff) | |
| parent | 38c4791b414538962f6a8ab958aecd09414f33f6 (diff) | |
| download | mullvadvpn-5ba686d1ac45509cba636d717bb6729865105cf3.tar.xz mullvadvpn-5ba686d1ac45509cba636d717bb6729865105cf3.zip | |
Merge branch 'remove-jodatime-droid-898'
Diffstat (limited to 'android/test/e2e')
4 files changed, 29 insertions, 24 deletions
diff --git a/android/test/e2e/build.gradle.kts b/android/test/e2e/build.gradle.kts index 3f4244cde7..8bcc45ab77 100644 --- a/android/test/e2e/build.gradle.kts +++ b/android/test/e2e/build.gradle.kts @@ -155,7 +155,6 @@ dependencies { implementation(libs.ktor.client.cio) implementation(libs.ktor.serialization.kotlinx.json) implementation(libs.ktor.client.content.negotiation) - implementation(libs.jodatime) androidTestUtil(libs.androidx.test.orchestrator) diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Packet.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Packet.kt index 5c788e5710..cd6b2b855e 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Packet.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Packet.kt @@ -1,23 +1,25 @@ package net.mullvad.mullvadvpn.test.e2e.router.packetCapture +import java.time.ZonedDateTime import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import net.mullvad.mullvadvpn.test.e2e.serializer.PacketSerializer -import org.joda.time.DateTime @Serializable(with = PacketSerializer::class) sealed interface Packet { - @SerialName("timestamp") val date: DateTime + @SerialName("timestamp") val date: ZonedDateTime val fromPeer: Boolean } @Serializable -data class RxPacket(@SerialName("timestamp") @Contextual override val date: DateTime) : Packet { +data class RxPacket(@SerialName("timestamp") @Contextual override val date: ZonedDateTime) : + Packet { @SerialName("from_peer") override val fromPeer: Boolean = false } @Serializable -data class TxPacket(@SerialName("timestamp") @Contextual override val date: DateTime) : Packet { +data class TxPacket(@SerialName("timestamp") @Contextual override val date: ZonedDateTime) : + Packet { @SerialName("from_peer") override val fromPeer: Boolean = true } diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Stream.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Stream.kt index 564d0e25cb..68eb2783cc 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Stream.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Stream.kt @@ -1,11 +1,11 @@ package net.mullvad.mullvadvpn.test.e2e.router.packetCapture +import java.time.Duration +import java.time.ZonedDateTime import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.Transient import net.mullvad.mullvadvpn.test.e2e.router.NetworkingProtocol -import org.joda.time.DateTime -import org.joda.time.Interval @Serializable data class Stream( @@ -18,24 +18,26 @@ data class Stream( @Transient val sourceHost = Host.fromString(sourceAddressAndPort) @Transient val destinationHost = Host.fromString(destinationAddressAndPort) - @Transient private val startDate: DateTime = packets.first().date - @Transient private val endDate: DateTime = packets.last().date - @Transient private val txStartDate: DateTime? = txPackets().firstOrNull()?.date - @Transient private val txEndDate: DateTime? = txPackets().lastOrNull()?.date - @Transient private val rxStartDate: DateTime? = rxPackets().firstOrNull()?.date - @Transient private val rxEndDate: DateTime? = rxPackets().lastOrNull()?.date + @Transient private val startDate: ZonedDateTime = packets.first().date + @Transient private val endDate: ZonedDateTime = packets.last().date + @Transient private val txStartDate: ZonedDateTime? = txPackets().firstOrNull()?.date + @Transient private val txEndDate: ZonedDateTime? = txPackets().lastOrNull()?.date + @Transient private val rxStartDate: ZonedDateTime? = rxPackets().firstOrNull()?.date + @Transient private val rxEndDate: ZonedDateTime? = rxPackets().lastOrNull()?.date - @Transient val interval = Interval(startDate, endDate) + @Transient val interval = Duration.between(startDate, endDate) fun txPackets(): List<TxPacket> = packets.filterIsInstance<TxPacket>() fun rxPackets(): List<RxPacket> = packets.filterIsInstance<RxPacket>() - fun txInterval(): Interval? = - if (txStartDate != null && txEndDate != null) Interval(txStartDate, txEndDate) else null + fun txInterval(): Duration? = + if (txStartDate != null && txEndDate != null) Duration.between(txStartDate, txEndDate) + else null - fun rxInterval(): Interval? = - if (rxStartDate != null && rxEndDate != null) Interval(rxStartDate, rxEndDate) else null + fun rxInterval(): Duration? = + if (rxStartDate != null && rxEndDate != null) Duration.between(rxStartDate, rxEndDate) + else null init { require(packets.isNotEmpty()) { "Stream must contain at least one packet" } diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/serializer/NanoSecondsTimestampSerializer.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/serializer/NanoSecondsTimestampSerializer.kt index d49ca6017d..26d5f05f5b 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/serializer/NanoSecondsTimestampSerializer.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/serializer/NanoSecondsTimestampSerializer.kt @@ -1,23 +1,25 @@ package net.mullvad.mullvadvpn.test.e2e.serializer +import java.time.Instant +import java.time.ZoneId +import java.time.ZonedDateTime import kotlinx.serialization.KSerializer import kotlinx.serialization.descriptors.PrimitiveKind import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder -import org.joda.time.DateTime -object NanoSecondsTimestampSerializer : KSerializer<DateTime> { +object NanoSecondsTimestampSerializer : KSerializer<ZonedDateTime> { override val descriptor: SerialDescriptor = - PrimitiveSerialDescriptor("DateTime", PrimitiveKind.LONG) + PrimitiveSerialDescriptor("ZonedDateTime", PrimitiveKind.LONG) - override fun deserialize(decoder: Decoder): DateTime { + override fun deserialize(decoder: Decoder): ZonedDateTime { val long = decoder.decodeLong() - return DateTime(long / 1000) + return ZonedDateTime.ofInstant(Instant.ofEpochMilli(long / 1000), ZoneId.systemDefault()) } - override fun serialize(encoder: Encoder, value: DateTime) { + override fun serialize(encoder: Encoder, value: ZonedDateTime) { throw NotImplementedError("Only interested in deserialization") } } |
