Skip to content

Commit a7460d2

Browse files
committed
Fix android CI
1 parent 6144770 commit a7460d2

File tree

5 files changed

+89
-67
lines changed

5 files changed

+89
-67
lines changed

.github/workflows/test.yml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,23 @@ env:
1212
jobs:
1313
library-unit:
1414
name: Library (Unit Tests)
15-
runs-on: ubuntu-latest
15+
runs-on: warp-ubuntu-latest-x64-16x
1616
steps:
1717
- name: Checkout project sources
1818
uses: actions/checkout@v4
1919
- uses: actions/setup-java@v4
2020
with:
21-
distribution: 'adopt'
22-
java-version: '17'
21+
distribution: "temurin"
22+
java-version: "17"
2323
- name: Setup Gradle
24-
uses: gradle/actions/setup-gradle@v3
24+
uses: gradle/actions/setup-gradle@v4
2525
- name: Start Docker containers
2626
run: dev/up
2727
- name: Gradle Run Unit Tests
2828
run: ./gradlew library:testDebug
2929
library-integration:
3030
name: Library (Integration Tests)
31-
runs-on: ubuntu-latest
31+
runs-on: warp-ubuntu-latest-x64-16x
3232
steps:
3333
- name: Checkout
3434
uses: actions/checkout@v4
@@ -37,20 +37,22 @@ jobs:
3737
- name: Configure JDK
3838
uses: actions/setup-java@v4
3939
with:
40-
distribution: 'adopt'
41-
java-version: '17'
40+
distribution: "temurin"
41+
java-version: "17"
4242
- name: Enable KVM group perms
4343
run: |
4444
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
4545
sudo udevadm control --reload-rules
4646
sudo udevadm trigger --name-match=kvm
4747
- name: Setup Gradle
48-
uses: gradle/actions/setup-gradle@v3
48+
uses: gradle/actions/setup-gradle@v4
4949
- name: Start Docker containers
5050
run: dev/up
5151
- name: Gradle Run Integration Tests
5252
uses: reactivecircus/android-emulator-runner@v2
5353
with:
54-
api-level: 29
54+
api-level: 34
55+
arch: x86_64
56+
disable-animations: true
57+
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim
5558
script: ./gradlew connectedCheck
56-

dev/local/docker-compose.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ services:
3333
ports:
3434
- 8545:8545
3535

36+
history-server:
37+
image: ghcr.io/xmtp/message-history-server:main
38+
platform: linux/amd64
39+
ports:
40+
- "5558:5558"
41+
3642
db:
3743
image: postgres:13
3844
environment:

library/src/androidTest/java/org/xmtp/android/library/GroupTest.kt

Lines changed: 63 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,14 @@ class GroupTest {
9393
assertEquals(runBlocking { alixGroup.members().size }, 3)
9494
assertEquals(runBlocking { boGroup.members().size }, 3)
9595

96-
assertEquals(runBlocking { boGroup.permissionPolicySet().addMemberPolicy }, PermissionOption.Allow)
97-
assertEquals(runBlocking { alixGroup.permissionPolicySet().addMemberPolicy }, PermissionOption.Allow)
96+
assertEquals(
97+
runBlocking { boGroup.permissionPolicySet().addMemberPolicy },
98+
PermissionOption.Allow
99+
)
100+
assertEquals(
101+
runBlocking { alixGroup.permissionPolicySet().addMemberPolicy },
102+
PermissionOption.Allow
103+
)
98104
assertEquals(runBlocking { boGroup.isSuperAdmin(boClient.inboxId) }, true)
99105
assertEquals(runBlocking { boGroup.isSuperAdmin(alixClient.inboxId) }, false)
100106
assertEquals(runBlocking { alixGroup.isSuperAdmin(boClient.inboxId) }, true)
@@ -159,8 +165,14 @@ class GroupTest {
159165
assertEquals(runBlocking { alixGroup.members().size }, 2)
160166
assertEquals(runBlocking { boGroup.members().size }, 2)
161167

162-
assertEquals(runBlocking { boGroup.permissionPolicySet().addMemberPolicy }, PermissionOption.Admin)
163-
assertEquals(runBlocking { alixGroup.permissionPolicySet().addMemberPolicy }, PermissionOption.Admin)
168+
assertEquals(
169+
runBlocking { boGroup.permissionPolicySet().addMemberPolicy },
170+
PermissionOption.Admin
171+
)
172+
assertEquals(
173+
runBlocking { alixGroup.permissionPolicySet().addMemberPolicy },
174+
PermissionOption.Admin
175+
)
164176
assertEquals(runBlocking { boGroup.isSuperAdmin(boClient.inboxId) }, true)
165177
assertEquals(runBlocking { boGroup.isSuperAdmin(alixClient.inboxId) }, false)
166178
assertEquals(runBlocking { alixGroup.isSuperAdmin(boClient.inboxId) }, true)
@@ -208,8 +220,14 @@ class GroupTest {
208220
assertEquals(runBlocking { alixGroup.members().size }, 3)
209221
assertEquals(runBlocking { boGroup.members().size }, 3)
210222

211-
assertEquals(runBlocking { boGroup.permissionPolicySet().addMemberPolicy }, PermissionOption.Allow)
212-
assertEquals(runBlocking { alixGroup.permissionPolicySet().addMemberPolicy }, PermissionOption.Allow)
223+
assertEquals(
224+
runBlocking { boGroup.permissionPolicySet().addMemberPolicy },
225+
PermissionOption.Allow
226+
)
227+
assertEquals(
228+
runBlocking { alixGroup.permissionPolicySet().addMemberPolicy },
229+
PermissionOption.Allow
230+
)
213231
assertEquals(runBlocking { boGroup.isSuperAdmin(boClient.inboxId) }, true)
214232
assertEquals(runBlocking { boGroup.isSuperAdmin(alixClient.inboxId) }, false)
215233
assertEquals(runBlocking { alixGroup.isSuperAdmin(boClient.inboxId) }, true)
@@ -246,28 +264,25 @@ class GroupTest {
246264
}
247265

248266
@Test
249-
fun testGroupMetadata() {
250-
val boGroup = runBlocking {
251-
boClient.conversations.newGroup(
252-
listOf(alixClient.inboxId),
253-
groupName = "Starting Name",
254-
groupImageUrlSquare = "startingurl.com"
255-
)
256-
}
257-
runBlocking {
258-
assertEquals("Starting Name", boGroup.name)
259-
assertEquals("startingurl.com", boGroup.imageUrl)
260-
boGroup.updateName("This Is A Great Group")
261-
boGroup.updateImageUrl("thisisanewurl.com")
262-
boGroup.sync()
263-
alixClient.conversations.sync()
264-
}
265-
val alixGroup = runBlocking { alixClient.conversations.listGroups().first() }
266-
runBlocking { alixGroup.sync() }
267-
assertEquals("This Is A Great Group", boGroup.name)
268-
assertEquals("This Is A Great Group", alixGroup.name)
269-
assertEquals("thisisanewurl.com", boGroup.imageUrl)
270-
assertEquals("thisisanewurl.com", alixGroup.imageUrl)
267+
fun testGroupMetadata() = runBlocking {
268+
val boGroup = boClient.conversations.newGroup(
269+
listOf(alixClient.inboxId),
270+
groupName = "Starting Name",
271+
groupImageUrlSquare = "startingurl.com"
272+
)
273+
assertEquals("Starting Name", boGroup.name())
274+
assertEquals("startingurl.com", boGroup.imageUrl())
275+
boGroup.updateName("This Is A Great Group")
276+
boGroup.updateImageUrl("thisisanewurl.com")
277+
boGroup.sync()
278+
279+
alixClient.conversations.sync()
280+
val alixGroup = alixClient.conversations.listGroups().first()
281+
alixGroup.sync()
282+
assertEquals("This Is A Great Group", boGroup.name())
283+
assertEquals("This Is A Great Group", alixGroup.name())
284+
assertEquals("thisisanewurl.com", boGroup.imageUrl())
285+
assertEquals("thisisanewurl.com", alixGroup.imageUrl())
271286
}
272287

273288
@Test
@@ -1072,9 +1087,9 @@ class GroupTest {
10721087
// Validate messages exist and settings are applied
10731088
assertEquals(boGroup.messages().size, 2) // memberAdd, howdy
10741089
assertEquals(alixGroup?.messages()?.size, 2) // memberAdd, howdy
1075-
assertNotNull(boGroup.disappearingMessageSettings)
1076-
assertEquals(boGroup.disappearingMessageSettings!!.retentionDurationInNs, 1_000_000_000)
1077-
assertEquals(boGroup.disappearingMessageSettings!!.disappearStartingAtNs, 1_000_000_000)
1090+
assertNotNull(boGroup.disappearingMessageSettings())
1091+
assertEquals(boGroup.disappearingMessageSettings()!!.retentionDurationInNs, 1_000_000_000)
1092+
assertEquals(boGroup.disappearingMessageSettings()!!.disappearStartingAtNs, 1_000_000_000)
10781093
Thread.sleep(5000)
10791094
// Validate messages are deleted
10801095
assertEquals(boGroup.messages().size, 1) // memberAdd
@@ -1085,10 +1100,10 @@ class GroupTest {
10851100
boGroup.sync()
10861101
alixGroup!!.sync()
10871102

1088-
assertNull(boGroup.disappearingMessageSettings)
1089-
assertNull(alixGroup.disappearingMessageSettings)
1090-
assert(!boGroup.isDisappearingMessagesEnabled)
1091-
assert(!alixGroup.isDisappearingMessagesEnabled)
1103+
assertNull(boGroup.disappearingMessageSettings())
1104+
assertNull(alixGroup.disappearingMessageSettings())
1105+
assert(!boGroup.isDisappearingMessagesEnabled())
1106+
assert(!alixGroup.isDisappearingMessagesEnabled())
10921107

10931108
// Send messages after disabling disappearing settings
10941109
boGroup.send("message after disabling disappearing")
@@ -1100,11 +1115,11 @@ class GroupTest {
11001115
// Ensure messages persist
11011116
assertEquals(
11021117
boGroup.messages().size,
1103-
3
1118+
5
11041119
) // memberAdd, disappearing settings 1, disappearing settings 2, boMessage, alixMessage
11051120
assertEquals(
11061121
alixGroup.messages().size,
1107-
3
1122+
5
11081123
) // memberAdd disappearing settings 1, disappearing settings 2, boMessage, alixMessage
11091124

11101125
// Re-enable disappearing messages
@@ -1116,14 +1131,14 @@ class GroupTest {
11161131
boGroup.sync()
11171132
alixGroup.sync()
11181133

1119-
Thread.sleep(1000)
1134+
Thread.sleep(2000)
11201135

11211136
assertEquals(
1122-
boGroup.disappearingMessageSettings!!.disappearStartingAtNs,
1137+
boGroup.disappearingMessageSettings()!!.disappearStartingAtNs,
11231138
updatedSettings.disappearStartingAtNs
11241139
)
11251140
assertEquals(
1126-
alixGroup.disappearingMessageSettings!!.disappearStartingAtNs,
1141+
alixGroup.disappearingMessageSettings()!!.disappearStartingAtNs,
11271142
updatedSettings.disappearStartingAtNs
11281143
)
11291144

@@ -1134,36 +1149,36 @@ class GroupTest {
11341149

11351150
assertEquals(
11361151
boGroup.messages().size,
1137-
5
1152+
9
11381153
) // memberAdd, disappearing settings 3, disappearing settings 4, boMessage, alixMessage, disappearing settings 5, disappearing settings 6, boMessage2, alixMessage2
11391154
assertEquals(
11401155
alixGroup.messages().size,
1141-
5
1156+
9
11421157
) // memberAdd disappearing settings 3, disappearing settings 4, boMessage, alixMessage, disappearing settings 5, disappearing settings 6, boMessage2, alixMessage2
11431158

11441159
Thread.sleep(6000) // Wait for messages to disappear
11451160

11461161
// Validate messages were deleted
11471162
assertEquals(
11481163
boGroup.messages().size,
1149-
3
1164+
7
11501165
) // memberAdd, disappearing settings 3, disappearing settings 4, boMessage, alixMessage, disappearing settings 5, disappearing settings 6
11511166
assertEquals(
11521167
alixGroup.messages().size,
1153-
3
1168+
7
11541169
) // memberAdd disappearing settings 3, disappearing settings 4, boMessage, alixMessage, disappearing settings 5, disappearing settings 6
11551170

11561171
// Final validation that settings persist
11571172
assertEquals(
1158-
boGroup.disappearingMessageSettings!!.retentionDurationInNs,
1173+
boGroup.disappearingMessageSettings()!!.retentionDurationInNs,
11591174
updatedSettings.retentionDurationInNs
11601175
)
11611176
assertEquals(
1162-
alixGroup.disappearingMessageSettings!!.retentionDurationInNs,
1177+
alixGroup.disappearingMessageSettings()!!.retentionDurationInNs,
11631178
updatedSettings.retentionDurationInNs
11641179
)
1165-
assert(boGroup.isDisappearingMessagesEnabled)
1166-
assert(alixGroup.isDisappearingMessagesEnabled)
1180+
assert(boGroup.isDisappearingMessagesEnabled())
1181+
assert(alixGroup.isDisappearingMessagesEnabled())
11671182
}
11681183

11691184
@Test

library/src/androidTest/java/org/xmtp/android/library/GroupUpdatedTest.kt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,14 @@ class GroupUpdatedTest {
124124
}
125125

126126
@Test
127-
fun testIfNotRegisteredReturnsFallback() {
128-
val group = runBlocking {
129-
alixClient.conversations.newGroup(
130-
listOf(
131-
boClient.inboxId,
132-
caroClient.inboxId
133-
)
127+
fun testIfNotRegisteredReturnsFallback() = runBlocking {
128+
val group = alixClient.conversations.newGroup(
129+
listOf(
130+
boClient.inboxId,
131+
caroClient.inboxId
134132
)
135-
}
136-
val messages = runBlocking { group.messages() }
133+
)
134+
val messages = group.messages()
137135
assertEquals(messages.size, 1)
138136
assert(messages.first().fallback.isBlank())
139137
}

libxmtp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 2b0b6059705044487dbc46eef3edd7939177646a

0 commit comments

Comments
 (0)