1#!/bin/bash
2
3# Setup paths and import util functions
4. $(dirname $(readlink -f "$0"))/util.sh
5
6cd ${VIRGL_PATH}
7
8DOCKER_DRIVER=overlay2
9DOCKER_IMAGE=${DOCKER_IMAGE:-registry.freedesktop.org/virgl/virglrenderer/debian/buster:latest}
10
11if [[ -z $NUM_THREADS ]] ; then
12    # If not forced use slightly less than half of available threads
13    NUM_THREADS=$(expr $(expr $(nproc) + 2) / 3)
14fi
15
16# When running the erhm, CI, locally,
17# do use HW based backends, which
18# may introduce variabity.
19RENDER_DEVICE=/dev/dri/renderD128
20
21if test $NUM_THREADS -gt 0; then THREAD_CONFIG="-e NUM_THREADS=$NUM_THREADS"; fi
22if test -e "$RENDER_DEVICE"; then RD_CONFIG="--device=$RENDER_DEVICE -e RENDER_DEVICE=$RENDER_DEVICE"; fi
23if test -e "$MESA_PATH"; then LOCAL_MESA="-v $MESA_PATH:/local_mesa -e LOCAL_MESA=/local_mesa"; fi
24if test -e "$VIRGL_PATH"; then LOCAL_VIRGL="-v $VIRGL_PATH:/virglrenderer -e LOCAL_VIRGL=/virglrenderer"; fi
25
26echo THREAD_CONFIG=$THREAD_CONFIG
27echo RD_CONFIG=$RD_CONFIG
28echo LOCAL_MESA=$LOCAL_MESA
29echo LOCAL_VIRGL=$LOCAL_VIRGL
30
31rm -rf $VIRGL_PATH/results
32mkdir -p $VIRGL_PATH/results
33
34time docker run \
35     -it \
36     --ulimit core=99999999999:99999999999 \
37     $THREAD_CONFIG \
38     $RD_CONFIG \
39     $LOCAL_MESA \
40     $LOCAL_VIRGL \
41     $DOCKER_IMAGE \
42     bash -c "/virglrenderer/ci/run_tests.sh --make-check-meson --deqp-gl-gl-tests --deqp-gl-gles-tests --deqp-gles-gl-tests --deqp-gles-gles-tests  --piglit-gl --piglit-gles" 2>&1 | tee results/log.txt
43