From c7e180d53489e811125dd2b8ba1ef7f1f16555fb Mon Sep 17 00:00:00 2001 From: Vilius Sutkus '89 Date: Fri, 16 Aug 2024 20:14:38 +0300 Subject: [PATCH 1/8] Don't use artifacted adbfs, make new one in test. Making takes a second, waiting for another job to complete takes a while --- .github/workflows/ccpp.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 1bedf85..1ead19f 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -20,16 +20,15 @@ jobs: path: | ./adbfs test: - needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: prepare run: sudo apt-get update && sudo apt-get install -y fuse libfuse-dev - - name: get-adbfs-binary - uses: actions/download-artifact@v4 - with: - name: adbfs-bin + + - name: make + run: make + - name: copy adbfs binary run: | sudo cp ${{ github.workspace }}/adbfs /usr/bin/adbfs From ed0478d0059c0b338ba15e40c6c6501c908d7b0b Mon Sep 17 00:00:00 2001 From: Vilius Sutkus '89 Date: Fri, 16 Aug 2024 20:15:16 +0300 Subject: [PATCH 2/8] Add emulator matrix --- .github/workflows/ccpp.yml | 39 +++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 1ead19f..f0f0148 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -21,6 +21,41 @@ jobs: ./adbfs test: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + emulator: + - { 'api_level': 35, 'api_type_target': 'google_apis', 'arch': 'x86_64' } + - { 'api_level': 34, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 33, 'api_type_target': 'aosp_atd', 'arch': 'x86_64' } + - { 'api_level': 32, 'api_type_target': 'aosp_atd', 'arch': 'x86_64' } + - { 'api_level': 31, 'api_type_target': 'aosp_atd', 'arch': 'x86_64' } + - { 'api_level': 30, 'api_type_target': 'aosp_atd', 'arch': 'x86_64' } + - { 'api_level': 30, 'api_type_target': 'aosp_atd', 'arch': 'x86' } + - { 'api_level': 29, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 29, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 28, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 28, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 27, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 27, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 26, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 26, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 25, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 25, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 24, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 24, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 23, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 23, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 22, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 22, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 21, 'api_type_target': 'default', 'arch': 'x86_64' } + - { 'api_level': 21, 'api_type_target': 'default', 'arch': 'x86' } + + - { 'api_level': 19, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 18, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 17, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 16, 'api_type_target': 'default', 'arch': 'x86' } + - { 'api_level': 15, 'api_type_target': 'default', 'arch': 'x86' } steps: - uses: actions/checkout@v4 - name: prepare @@ -41,7 +76,9 @@ jobs: - name: run tests uses: reactivecircus/android-emulator-runner@v2 with: - api-level: 29 + api-level: ${{ matrix.emulator.api_level }} + arch: ${{ matrix.emulator.arch }} + target: ${{ matrix.emulator.api_type_target }} script: sudo ./docker/run-docker-test.sh # services: # emulator: From 89b0be82ac85785ed38fd3eea0063c7e5f0c2460 Mon Sep 17 00:00:00 2001 From: Vilius Sutkus '89 Date: Fri, 16 Aug 2024 20:21:14 +0300 Subject: [PATCH 3/8] Don't check for device readiness in test script. Emulator action already does that --- docker/run-docker-test.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docker/run-docker-test.sh b/docker/run-docker-test.sh index 6a0c4bd..049175e 100755 --- a/docker/run-docker-test.sh +++ b/docker/run-docker-test.sh @@ -47,9 +47,11 @@ wait_available() { } -echo Checking readiness via adb shell ls -d /sdcard/Android -adb devices -wait_available / +# No need to check for readiness when running on GHA +# reactivecircus/android-emulator-runner already handles that +#echo Checking readiness via adb shell ls -d /sdcard/Android +#adb devices +#wait_available / mkdir -p /adbfs From abb70beb3b09ad45541c9f60d9cc7b8d8093ef3c Mon Sep 17 00:00:00 2001 From: Vilius Sutkus '89 Date: Fri, 16 Aug 2024 20:36:35 +0300 Subject: [PATCH 4/8] Add a bit of debugging output --- docker/run-docker-test.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docker/run-docker-test.sh b/docker/run-docker-test.sh index 049175e..6bccdf1 100755 --- a/docker/run-docker-test.sh +++ b/docker/run-docker-test.sh @@ -49,9 +49,11 @@ wait_available() { # No need to check for readiness when running on GHA # reactivecircus/android-emulator-runner already handles that -#echo Checking readiness via adb shell ls -d /sdcard/Android -#adb devices -#wait_available / +# Disabling wait_available because it errors out sometims +# +# echo Checking readiness via adb shell ls -d /sdcard/Android +# adb devices +# wait_available / mkdir -p /adbfs @@ -61,6 +63,8 @@ echo Ready to run adbfs tests BASE_DIR=/adbfs/sdcard/test +adb shell ls -lh /sdcard + test_mkdir() { local_timestamp=$(date "+%s") From a0d745365ad78b99314742cd70c419ab397e71ba Mon Sep 17 00:00:00 2001 From: Vilius Sutkus '89 Date: Fri, 16 Aug 2024 20:41:42 +0300 Subject: [PATCH 5/8] Don't fail tests because of bad timestamp. Maybe it's a timezone issue --- docker/run-docker-test.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docker/run-docker-test.sh b/docker/run-docker-test.sh index 6bccdf1..1f5ab76 100755 --- a/docker/run-docker-test.sh +++ b/docker/run-docker-test.sh @@ -63,7 +63,7 @@ echo Ready to run adbfs tests BASE_DIR=/adbfs/sdcard/test -adb shell ls -lh /sdcard +adb shell ls -l /sdcard test_mkdir() { @@ -81,7 +81,8 @@ test_mkdir() { if [ "$abs_diff" -gt 120 ]; then echo "FAIL test_mkdir: file timestamp difference exceeds 120s: $abs_diff" - exit 1 + echo "timestamp: $timestamp" + echo "local timestamp: $local_timestamp" fi if [ "$path" != "$BASE_DIR/x" ]; @@ -113,7 +114,8 @@ test_catfile() { if [ "$abs_diff" -gt 120 ]; then echo "FAIL test_catfile: file timestamp difference exceeds 120s: $abs_diff" - exit 1 + echo "timestamp: $timestamp" + echo "local timestamp: $local_timestamp" fi if [ "$path" != "$BASE_DIR/file.txt" ]; From ea16164403641e685c4e9705e6a57b5db0cd80d2 Mon Sep 17 00:00:00 2001 From: Vilius Sutkus '89 Date: Fri, 16 Aug 2024 20:44:16 +0300 Subject: [PATCH 6/8] instrumentation --- docker/run-docker-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/run-docker-test.sh b/docker/run-docker-test.sh index 1f5ab76..0c8cf64 100755 --- a/docker/run-docker-test.sh +++ b/docker/run-docker-test.sh @@ -63,7 +63,7 @@ echo Ready to run adbfs tests BASE_DIR=/adbfs/sdcard/test -adb shell ls -l /sdcard +adb shell ls -l /sdcard/ test_mkdir() { From 3eaf64ae048257c79428e0c730f4f8d8eaf62efe Mon Sep 17 00:00:00 2001 From: Vilius Sutkus '89 Date: Fri, 16 Aug 2024 20:54:14 +0300 Subject: [PATCH 7/8] wait_available. exit 1 on timestamp error --- docker/run-docker-test.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docker/run-docker-test.sh b/docker/run-docker-test.sh index 0c8cf64..b60b094 100755 --- a/docker/run-docker-test.sh +++ b/docker/run-docker-test.sh @@ -49,11 +49,10 @@ wait_available() { # No need to check for readiness when running on GHA # reactivecircus/android-emulator-runner already handles that -# Disabling wait_available because it errors out sometims -# -# echo Checking readiness via adb shell ls -d /sdcard/Android -# adb devices -# wait_available / +# Disable wait_available because it errors out sometimes +echo Checking readiness via adb shell ls -d /sdcard/Android +adb devices +wait_available / mkdir -p /adbfs @@ -83,6 +82,7 @@ test_mkdir() { echo "FAIL test_mkdir: file timestamp difference exceeds 120s: $abs_diff" echo "timestamp: $timestamp" echo "local timestamp: $local_timestamp" + exit 1 fi if [ "$path" != "$BASE_DIR/x" ]; @@ -116,6 +116,7 @@ test_catfile() { echo "FAIL test_catfile: file timestamp difference exceeds 120s: $abs_diff" echo "timestamp: $timestamp" echo "local timestamp: $local_timestamp" + exit 1 fi if [ "$path" != "$BASE_DIR/file.txt" ]; From 032d2b46fa175f038c97b965e178be0edbcb5b7a Mon Sep 17 00:00:00 2001 From: Vilius Sutkus '89 Date: Fri, 16 Aug 2024 20:59:43 +0300 Subject: [PATCH 8/8] Remove comment about GHA waiting --- docker/run-docker-test.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/docker/run-docker-test.sh b/docker/run-docker-test.sh index b60b094..1803edf 100755 --- a/docker/run-docker-test.sh +++ b/docker/run-docker-test.sh @@ -47,9 +47,6 @@ wait_available() { } -# No need to check for readiness when running on GHA -# reactivecircus/android-emulator-runner already handles that -# Disable wait_available because it errors out sometimes echo Checking readiness via adb shell ls -d /sdcard/Android adb devices wait_available /