This is an automated email from the ASF dual-hosted git repository.

yongwww pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git


The following commit(s) were added to refs/heads/main by this push:
     new e5c6f74460 [CI][ADRENO] Enhancements to Adreno specific CI utils 
(#15991)
e5c6f74460 is described below

commit e5c6f7446012d90aa37aa9aa4614f3327e3a1766
Author: Siva <[email protected]>
AuthorDate: Mon Nov 27 23:45:46 2023 +0530

    [CI][ADRENO] Enhancements to Adreno specific CI utils (#15991)
    
    RPC seem to be hanging while running bunch of tests with in single session.
    This enables running them individually.
    Also we don't need rerun with in same session that leads to hang some times.
    Adding PLATFORM which is needed for run_pytest to summarize the failures.
---
 tests/scripts/ci.py                 |  2 ++
 tests/scripts/setup-pytest-env.sh   |  4 +++-
 tests/scripts/task_python_adreno.sh | 21 ++++++++++++++++++---
 3 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/tests/scripts/ci.py b/tests/scripts/ci.py
index 1add6bcde3..a2facff6d6 100755
--- a/tests/scripts/ci.py
+++ b/tests/scripts/ci.py
@@ -189,6 +189,8 @@ def docker(
         env["SCCACHE_CACHE_SIZE"] = os.getenv("SCCACHE_CACHE_SIZE", "50G")
         env["SCCACHE_SERVER_PORT"] = os.getenv("SCCACHE_SERVER_PORT", "4226")
 
+    env["PLATFORM"] = name
+
     docker_bash = REPO_ROOT / "docker" / "bash.sh"
 
     command = [docker_bash]
diff --git a/tests/scripts/setup-pytest-env.sh 
b/tests/scripts/setup-pytest-env.sh
index 129309f005..7bdfbdd1df 100755
--- a/tests/scripts/setup-pytest-env.sh
+++ b/tests/scripts/setup-pytest-env.sh
@@ -70,7 +70,9 @@ function run_pytest() {
 
     has_reruns=$(python3 -m pytest --help 2>&1 | grep 'reruns=' || true)
     if [ -n "$has_reruns" ]; then
-        extra_args+=('--reruns=3')
+        if [[ ! "${extra_args[*]}" == *"--reruns"* ]]; then
+          extra_args+=('--reruns=3')
+        fi
     fi
 
     suite_name="${test_suite_name}-${current_shard}-${ffi_type}"
diff --git a/tests/scripts/task_python_adreno.sh 
b/tests/scripts/task_python_adreno.sh
index 6d9c370aec..634d9adbd6 100755
--- a/tests/scripts/task_python_adreno.sh
+++ b/tests/scripts/task_python_adreno.sh
@@ -54,18 +54,33 @@ adb forward tcp:5002 tcp:5002
 env adb shell "cd ${TARGET_FOLDER}; killall -9 tvm_rpc-${USER}; sleep 2; 
LD_LIBRARY_PATH=${TARGET_FOLDER}/ ./tvm_rpc-${USER} server --host=0.0.0.0 
--port=5000 --port-end=5010 --tracker=127.0.0.1:${TVM_TRACKER_PORT} 
--key=${RPC_DEVICE_KEY}" &
 DEVICE_PID=$!
 sleep 5 # Wait for the device connections
-trap "{ kill ${TRACKER_PID}; kill ${DEVICE_PID}; }" 0
+trap "{ kill ${TRACKER_PID}; kill ${DEVICE_PID}; cleanup; }" 0
 
 # cleanup pycache
 find . -type f -path "*.pyc" | xargs rm -f
 # Test TVM
 make cython3
 
+# The RPC to remote Android device has issue of hang after few tests with in 
CI environments.
+# Lets run them individually on fresh rpc session.
 # OpenCL texture test on Adreno
-run_pytest ctypes ${TVM_INTEGRATION_TESTSUITE_NAME}-opencl-texture 
tests/python/relay/opencl_texture
+TEXTURE_TESTS=$(./ci/scripts/jenkins/pytest_ids.py --folder 
tests/python/relay/opencl_texture)
+i=0
+IFS=$'\n'
+for node_id in $TEXTURE_TESTS; do
+    echo "$node_id"
+    run_pytest ctypes "$TVM_INTEGRATION_TESTSUITE_NAME-opencl-texture-$i" 
"$node_id" --reruns=0
+    i=$((i+1))
+done
 
 # Adreno CLML test
-run_pytest ctypes ${TVM_INTEGRATION_TESTSUITE_NAME}-openclml 
tests/python/contrib/test_clml
+CLML_TESTS=$(./ci/scripts/jenkins/pytest_ids.py --folder 
tests/python/contrib/test_clml)
+i=0
+for node_id in $CLML_TESTS; do
+    echo "$node_id"
+    run_pytest ctypes "$TVM_INTEGRATION_TESTSUITE_NAME-openclml-$i" "$node_id" 
--reruns=0
+    i=$((i+1))
+done
 
 kill ${TRACKER_PID}
 kill ${DEVICE_PID}

Reply via email to