Skip to content

Commit 873d3b1

Browse files
committed
Safer tests
1 parent 31f1dcf commit 873d3b1

File tree

1 file changed

+41
-28
lines changed

1 file changed

+41
-28
lines changed

aws-crt-kotlin/native/test/aws/sdk/kotlin/crt/io/CrtHostResolverTest.kt

Lines changed: 41 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package aws.sdk.kotlin.crt.io
77

8+
import aws.sdk.kotlin.crt.use
89
import kotlinx.coroutines.test.runTest
910
import kotlin.test.Test
1011
import kotlin.test.assertEquals
@@ -16,62 +17,74 @@ import kotlin.test.assertTrue
1617
class CrtHostResolverTest {
1718
@Test
1819
fun testResolveLocalhost() = runTest {
19-
val hr = HostResolver()
20-
val addresses = hr.resolve("localhost")
21-
assertTrue(addresses.isNotEmpty())
20+
HostResolver().use {
21+
val addresses = it.resolve("localhost")
22+
assertTrue(addresses.isNotEmpty())
2223

23-
addresses.forEach { addr ->
24-
assertEquals("localhost", addr.host)
24+
addresses.forEach { addr ->
25+
assertEquals("localhost", addr.host)
2526

26-
val localHostAddress = when (addr.addressType) {
27-
AddressType.IpV4 -> "127.0.0.1"
28-
AddressType.IpV6 -> "::1"
27+
val localHostAddress = when (addr.addressType) {
28+
AddressType.IpV4 -> "127.0.0.1"
29+
AddressType.IpV6 -> "::1"
30+
}
31+
assertEquals(localHostAddress, addr.address)
2932
}
30-
assertEquals(localHostAddress, addr.address)
3133
}
3234
}
3335

3436
@Test
3537
fun testResolveIpv4Address() = runTest {
36-
val addresses = HostResolver().resolve("127.0.0.1")
37-
assertTrue(addresses.isNotEmpty())
38+
HostResolver().use {
39+
val addresses = it.resolve("127.0.0.1")
40+
assertTrue(addresses.isNotEmpty())
3841

39-
addresses.forEach { addr ->
40-
assertEquals(AddressType.IpV4, addr.addressType)
41-
assertEquals("127.0.0.1", addr.address)
42+
addresses.forEach { addr ->
43+
assertEquals(AddressType.IpV4, addr.addressType)
44+
assertEquals("127.0.0.1", addr.address)
45+
}
4246
}
4347
}
4448

4549
@Test
4650
fun testResolveIpv6Address() = runTest {
47-
val addresses = HostResolver().resolve("::1")
48-
assertTrue(addresses.isNotEmpty())
51+
HostResolver().use {
52+
val addresses = it.resolve("::1")
53+
assertTrue(addresses.isNotEmpty())
4954

50-
addresses.forEach { addr ->
51-
assertEquals(AddressType.IpV6, addr.addressType)
52-
assertEquals("::1", addr.address)
55+
addresses.forEach { addr ->
56+
assertEquals(AddressType.IpV6, addr.addressType)
57+
assertEquals("::1", addr.address)
58+
}
5359
}
5460
}
5561

5662
@Test
5763
fun testResolveExampleDomain() = runTest {
58-
val addresses = HostResolver().resolve("example.com")
59-
assertNotNull(addresses)
60-
assertTrue(addresses.isNotEmpty())
64+
HostResolver().use {
65+
val addresses = it.resolve("example.com")
66+
assertNotNull(addresses)
67+
assertTrue(addresses.isNotEmpty())
6168

62-
addresses.forEach { addr ->
63-
assertEquals("example.com", addr.host)
64-
when (addr.addressType) {
65-
AddressType.IpV4 -> assertEquals(3, addr.address.count { it == '.' })
66-
AddressType.IpV6 -> assertEquals(if (addr.address.contains("::")) 6 else 7, addr.address.count { it == ':' })
69+
addresses.forEach { addr ->
70+
assertEquals("example.com", addr.host)
71+
when (addr.addressType) {
72+
AddressType.IpV4 -> assertEquals(3, addr.address.count { it == '.' })
73+
AddressType.IpV6 -> assertEquals(if (addr.address.contains("::")) 6 else 7, addr.address.count { it == ':' })
74+
}
6775
}
6876
}
6977
}
7078

7179
@Test
7280
fun testResolveInvalidDomain() = runTest {
7381
assertFails {
74-
HostResolver().resolve("this-domain-definitely-does-not-exist-12345.local")
82+
val hr = HostResolver()
83+
try {
84+
hr.resolve("this-domain-definitely-does-not-exist-12345.local")
85+
} finally {
86+
hr.close()
87+
}
7588
}
7689
}
7790
}

0 commit comments

Comments
 (0)