#!/usr/bin/env bash # # Kiwix Android # Copyright (c) 2024 Kiwix # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # # Enable Wi-Fi on the emulator adb shell svc wifi enable adb logcat -c # shellcheck disable=SC2035 adb logcat *:E -v color & PACKAGE_NAME="org.kiwix.kiwixmobile.custom" TEST_PACKAGE_NAME="${PACKAGE_NAME}.test" TEST_SERVICES_PACKAGE="androidx.test.services" TEST_ORCHESTRATOR_PACKAGE="androidx.test.orchestrator" # Function to check if the application is installed is_app_installed() { adb shell pm list packages | grep -q "$1" } if is_app_installed "$PACKAGE_NAME"; then # Delete the application to properly run the test cases. adb uninstall "${PACKAGE_NAME}" fi if is_app_installed "$TEST_PACKAGE_NAME"; then # Delete the test application to properly run the test cases. adb uninstall "${TEST_PACKAGE_NAME}" fi if is_app_installed "$TEST_SERVICES_PACKAGE"; then adb uninstall "${TEST_SERVICES_PACKAGE}" fi if is_app_installed "$TEST_ORCHESTRATOR_PACKAGE"; then adb uninstall "${TEST_ORCHESTRATOR_PACKAGE}" fi retry=0 while [ $retry -le 3 ]; do if ./gradlew connectedCustomexampleDebugAndroidTest; then echo "connectedCustomexampleDebugAndroidTest succeeded" >&2 break else adb kill-server adb start-server # Enable Wi-Fi on the emulator adb shell svc wifi enable adb logcat -c # shellcheck disable=SC2035 adb logcat *:E -v color & if is_app_installed "$PACKAGE_NAME"; then # Delete the application to properly run the test cases. adb uninstall "${PACKAGE_NAME}" fi if is_app_installed "$TEST_PACKAGE_NAME"; then # Delete the test application to properly run the test cases. adb uninstall "${TEST_PACKAGE_NAME}" fi if is_app_installed "$TEST_SERVICES_PACKAGE"; then adb uninstall "${TEST_SERVICES_PACKAGE}" fi if is_app_installed "$TEST_ORCHESTRATOR_PACKAGE"; then adb uninstall "${TEST_ORCHESTRATOR_PACKAGE}" fi ./gradlew clean retry=$(( retry + 1 )) if [ $retry -eq 3 ]; then adb exec-out screencap -p >screencap.png exit 1 fi fi done