summaryrefslogtreecommitdiffhomepage
path: root/android/test/e2e/src
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-02-26 14:58:25 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2025-02-26 14:58:25 +0100
commit5ba686d1ac45509cba636d717bb6729865105cf3 (patch)
treee21ad8d6ca30a8ca6a02313c9b4cc786370dc91e /android/test/e2e/src
parent5025db74b34cfb3536c43f89f3407ffc0d97ae73 (diff)
parent38c4791b414538962f6a8ab958aecd09414f33f6 (diff)
downloadmullvadvpn-5ba686d1ac45509cba636d717bb6729865105cf3.tar.xz
mullvadvpn-5ba686d1ac45509cba636d717bb6729865105cf3.zip
Merge branch 'remove-jodatime-droid-898'
Diffstat (limited to 'android/test/e2e/src')
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Packet.kt10
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/router/packetCapture/Stream.kt28
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/serializer/NanoSecondsTimestampSerializer.kt14
3 files changed, 29 insertions, 23 deletions
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")
}
}