1#!/bin/sh 2 3set -x 4 5# To prevent memory leaks from slowing throughput, restart everything between batches 6BATCH_SIZE=5000 7 8export XDG_RUNTIME_DIR=/tmp 9export LIBGL_DRIVERS_PATH=/mesa/lib/aarch64-linux-gnu/dri/ 10export LD_LIBRARY_PATH=/mesa/lib/aarch64-linux-gnu 11export XDG_CONFIG_HOME=$(pwd) 12 13echo "[core]\nidle-time=0\nrequire-input=false\n[shell]\nlocking=false" > weston.ini 14 15cd /deqp/modules/gles2 16 17# Generate test case list file 18weston --tty=7 & 19sleep 1 # Give some time for Weston to start up 20./deqp-gles2 --deqp-runmode=stdout-caselist | grep dEQP-GLES2 | cut -d ' ' -f 2 > /tmp/case-list.txt 21 22# Disable for now tests that are very slow, either by just using lots of CPU or by crashing 23sed -i '/dEQP-GLES2.performance/d' /tmp/case-list.txt 24sed -i '/dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_/d' /tmp/case-list.txt 25sed -i '/dEQP-GLES2.functional.texture.filtering.cube.linear_mipmap_linear_/d' /tmp/case-list.txt 26sed -i '/dEQP-GLES2.functional.texture.filtering.cube.linear_mipmap_nearest_/d' /tmp/case-list.txt 27 28# Cannot use tee because dash doesn't have pipefail 29touch /tmp/result.txt 30tail -f /tmp/result.txt & 31 32while [ -s /tmp/case-list.txt ]; do 33 head -$BATCH_SIZE /tmp/case-list.txt > /tmp/next-batch.txt 34 ./deqp-gles2 --deqp-log-filename=/dev/null --deqp-caselist-file=/tmp/next-batch.txt --deqp-watchdog=enable --deqp-crashhandler=enable >> /tmp/result.txt 35 deqp_status=$? 36 37 kill $(pidof weston) 38 sleep 1 # Give some time for Weston to release the VT 39 weston --tty=7 & 40 sleep 1 # Give some time for Weston to start up 41 42 if [ $deqp_status -ne 0 ]; then 43 # Continue from the subtest after the failing one 44 crashed_test=$(grep "Test case" /tmp/result.txt | tail -1 | sed "s/Test case '\(.*\)'\.\./\1/") 45 sed -i "0,/^$crashed_test$/d" /tmp/case-list.txt 46 47 # So LAVA knows what happened 48 echo "Test case '$crashed_test'.." 49 echo " Crash" 50 else 51 # Consume a whole batch 52 sed -i '1,'$BATCH_SIZE'd' /tmp/case-list.txt 53 fi 54done 55