From aabced528f883b1a8a8fc044d7a68113d05eba59 Mon Sep 17 00:00:00 2001 From: Jack Farrelly Date: Sat, 17 Jan 2026 14:26:16 +0100 Subject: [PATCH 1/3] Run Android ITs --- .github/workflows/build-client.yml | 19 +++++++++---------- client/Makefile | 7 ++++++- .../client/MainActivityTest.java | 10 +++++++++- client/gradle.properties | 6 +++++- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-client.yml b/.github/workflows/build-client.yml index 322c79cd..f14517b7 100644 --- a/.github/workflows/build-client.yml +++ b/.github/workflows/build-client.yml @@ -16,7 +16,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: macos-latest steps: - uses: actions/checkout@v3 @@ -47,20 +47,19 @@ jobs: run: make test # Enable hardware virtualisation - speeds up emulator - # TODO FixMe # - name: Enable KVM # run: | # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules # sudo udevadm control --reload-rules # sudo udevadm trigger --name-match=kvm -# -# - name: Integration Test -# uses: reactivecircus/android-emulator-runner@v2 -# with: -# api-level: 29 -# arch: x86_64 -# working-directory: ./client -# script: make integration-test + + - name: Integration Test + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 29 + arch: x86_64 + working-directory: ./client + script: make integration-test - name: Decode Keystore if: inputs.publish diff --git a/client/Makefile b/client/Makefile index ef571a7a..45d28da4 100644 --- a/client/Makefile +++ b/client/Makefile @@ -22,4 +22,9 @@ test: .PHONY: integration-test integration-test: - ./gradlew connectedDebugAndroidTest + #./gradlew connectedDebugAndroidTest -Pandroid.experimental.androidTest.useUnifiedTestPlatform=false --no-daemon --info + ./gradlew assembleDebug assembleDebugAndroidTest + adb install -t app/build/outputs/apk/debug/app-debug.apk + adb install -t app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk + adb shell am instrument -w -e no-window true com.jackpf.locationhistory.client.test/androidx.test.runner.AndroidJUnitRunner + diff --git a/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java b/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java index 223493fa..6f667dbc 100644 --- a/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java +++ b/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java @@ -16,7 +16,7 @@ public class MainActivityTest { public void activityLaunches() { try (ActivityScenario scenario = ActivityScenario.launch(MainActivity.class)) { scenario.onActivity(activity -> - assertEquals(MainActivity.class, activity.getClass()) + assertEquals(MainActivity.class, activity.getClass()) ); } } @@ -27,4 +27,12 @@ public void activityReachesResumedState() { assertEquals(Lifecycle.State.RESUMED, scenario.getState()); } } + + @Test + public void activityReachesResumedStatef() { + try (ActivityScenario scenario = ActivityScenario.launch(MainActivity.class)) { + assertEquals(Lifecycle.State.RESUMED, scenario.getState()); + assertEquals(1, 2); + } + } } diff --git a/client/gradle.properties b/client/gradle.properties index 20e2a015..de8b5e9d 100644 --- a/client/gradle.properties +++ b/client/gradle.properties @@ -20,4 +20,8 @@ kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true \ No newline at end of file +android.nonTransitiveRClass=true +# Give ADB more time to connect (5 mins) +android.adbOptions.timeOutInMs=300000 +# Increase the UTP gRPC timeout +android.experimental.androidTest.numInstallationRetries=3 \ No newline at end of file From ab68b5c06e1bb82bbad804e96fcbcd1f134c975f Mon Sep 17 00:00:00 2001 From: Jack Farrelly Date: Sat, 17 Jan 2026 14:30:44 +0100 Subject: [PATCH 2/3] ubuntu --- .github/workflows/build-client.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-client.yml b/.github/workflows/build-client.yml index f14517b7..97a6a39c 100644 --- a/.github/workflows/build-client.yml +++ b/.github/workflows/build-client.yml @@ -16,7 +16,7 @@ on: jobs: build: - runs-on: macos-latest + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -47,11 +47,11 @@ jobs: run: make test # Enable hardware virtualisation - speeds up emulator -# - name: Enable KVM -# run: | -# echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules -# sudo udevadm control --reload-rules -# sudo udevadm trigger --name-match=kvm + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm - name: Integration Test uses: reactivecircus/android-emulator-runner@v2 From ba4cd392a24473de4fd4974e921e8d6c46483f3f Mon Sep 17 00:00:00 2001 From: Jack Farrelly Date: Sat, 17 Jan 2026 14:45:40 +0100 Subject: [PATCH 3/3] Check output --- client/Makefile | 6 +++++- .../locationhistory/client/MainActivityTest.java | 14 +++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/client/Makefile b/client/Makefile index 45d28da4..42878635 100644 --- a/client/Makefile +++ b/client/Makefile @@ -26,5 +26,9 @@ integration-test: ./gradlew assembleDebug assembleDebugAndroidTest adb install -t app/build/outputs/apk/debug/app-debug.apk adb install -t app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk - adb shell am instrument -w -e no-window true com.jackpf.locationhistory.client.test/androidx.test.runner.AndroidJUnitRunner + #adb shell am instrument -w -e no-window true com.jackpf.locationhistory.client.test/androidx.test.runner.AndroidJUnitRunner + adb shell am instrument -w com.jackpf.locationhistory.client.test/androidx.test.runner.AndroidJUnitRunner \ + | tee /dev/tty \ + | grep -v "INSTRUMENTATION_STATUS" \ + | grep -q "OK (" diff --git a/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java b/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java index 6f667dbc..e6d0419a 100644 --- a/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java +++ b/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java @@ -28,11 +28,11 @@ public void activityReachesResumedState() { } } - @Test - public void activityReachesResumedStatef() { - try (ActivityScenario scenario = ActivityScenario.launch(MainActivity.class)) { - assertEquals(Lifecycle.State.RESUMED, scenario.getState()); - assertEquals(1, 2); - } - } +// @Test +// public void activityReachesResumedStatef() { +// try (ActivityScenario scenario = ActivityScenario.launch(MainActivity.class)) { +// assertEquals(Lifecycle.State.RESUMED, scenario.getState()); +// assertEquals(1, 2); +// } +// } }