summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRohan Garg <rohan.garg@collabora.com>2020-01-28 15:19:53 +0100
committerMarge Bot <eric+marge@anholt.net>2020-07-21 09:22:18 +0000
commit087be7e322013fd7f2ba918502c172226f0c9af6 (patch)
tree6e4ffe160456de189f7a273ea7915a3450811f6b
parent576c53dadf3f60bc363a39e85625afb67a2cbb8d (diff)
gitlab-ci: Replay traces on lava devices
Submit lava jobs to replay traces on Veyron (Mali T760) and Kevin (Mali T860) boards. Signed-off-by: Rohan Garg <rohan.garg@collabora.com> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-By: Rohan Garg <rohan.garg@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5472>
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--.gitlab-ci/container/arm_build.sh2
-rwxr-xr-x.gitlab-ci/generate_lava.py3
-rw-r--r--.gitlab-ci/lava-gitlab-ci.yml69
-rw-r--r--.gitlab-ci/lava-tracie.yml.jinja298
-rwxr-xr-x.gitlab-ci/prepare-artifacts.sh1
-rw-r--r--.gitlab-ci/traces.yml10
7 files changed, 166 insertions, 19 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 498e1fd0589..d407b388b24 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -321,7 +321,7 @@ arm_build:
- .fdo.container-build@debian@arm64v8
- .container
variables:
- FDO_DISTRIBUTION_TAG: &arm_build "2020-07-20-jflags"
+ FDO_DISTRIBUTION_TAG: &arm_build "2020-07-21-tracie"
.use-arm_build:
variables:
diff --git a/.gitlab-ci/container/arm_build.sh b/.gitlab-ci/container/arm_build.sh
index 706c2131418..56ad78d1775 100644
--- a/.gitlab-ci/container/arm_build.sh
+++ b/.gitlab-ci/container/arm_build.sh
@@ -30,6 +30,8 @@ apt-get -y install \
pkg-config \
python \
python3-mako \
+ python3-pil \
+ python3-requests \
python3-pip \
python3-setuptools \
unzip \
diff --git a/.gitlab-ci/generate_lava.py b/.gitlab-ci/generate_lava.py
index 4021f66b0c5..61da42877ad 100755
--- a/.gitlab-ci/generate_lava.py
+++ b/.gitlab-ci/generate_lava.py
@@ -20,6 +20,7 @@ parser.add_argument("--env-vars", nargs='?', default="")
parser.add_argument("--deqp-version")
parser.add_argument("--ci-node-index")
parser.add_argument("--ci-node-total")
+parser.add_argument("--job-type")
args = parser.parse_args()
env = Environment(loader = FileSystemLoader(os.path.dirname(args.template)), trim_blocks=True, lstrip_blocks=True)
@@ -44,7 +45,7 @@ values['deqp_version'] = args.deqp_version
# time from the network after boot.
values['date'] = datetime.datetime.now().strftime("%Y%m%d %H%M")
-f = open('lava-deqp.yml', "w")
+f = open(os.path.splitext(os.path.basename(args.template))[0], "w")
f.write(template.render(values))
f.close()
diff --git a/.gitlab-ci/lava-gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml
index c1c2352fc1c..dbbf1ea7c09 100644
--- a/.gitlab-ci/lava-gitlab-ci.yml
+++ b/.gitlab-ci/lava-gitlab-ci.yml
@@ -1,5 +1,5 @@
variables:
- DISTRIBUTION_TAG: "2020-07-10"
+ DISTRIBUTION_TAG: "2020-07-18"
.kernel+rootfs:
stage: container-2
@@ -46,7 +46,7 @@ kernel+rootfs_armhf:
fi
- >
artifacts/generate_lava.py \
- --template artifacts/lava-deqp.yml.jinja2 \
+ --template artifacts/lava-${TEST_SUITE}.yml.jinja2 \
--pipeline-info "$CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
--base-artifacts-url ${ARTIFACTS_URL} \
--mesa-url ${MESA_URL} \
@@ -60,13 +60,13 @@ kernel+rootfs_armhf:
--lava-tags "${LAVA_TAGS}" \
--ci-node-index "${CI_NODE_INDEX}" \
--ci-node-total "${CI_NODE_TOTAL}"
- - lava_job_id=`lavacli jobs submit lava-deqp.yml` || lavacli jobs submit lava-deqp.yml
+ - lava_job_id=`lavacli jobs submit lava-${TEST_SUITE}.yml` || lavacli jobs submit lava-${TEST_SUITE}.yml
- echo $lava_job_id
- rm -rf artifacts/*
- - cp lava-deqp.yml artifacts/.
- - lavacli jobs logs $lava_job_id | tee artifacts/lava-deqp-$lava_job_id.log
+ - cp lava-${TEST_SUITE}.yml artifacts/.
+ - lavacli jobs logs $lava_job_id | tee artifacts/lava-${TEST_SUITE}-$lava_job_id.log
- lavacli jobs show $lava_job_id
- - result=`lavacli results $lava_job_id 0_deqp deqp | head -1`
+ - result=`lavacli results $lava_job_id 0_${TEST_SUITE} ${TEST_SUITE} | head -1`
- echo $result
- '[[ "$result" == "pass" ]]'
artifacts:
@@ -81,6 +81,7 @@ kernel+rootfs_armhf:
KERNEL_IMAGE_NAME: zImage
KERNEL_IMAGE_TYPE: "type:\ zimage"
BOOT_METHOD: u-boot
+ TEST_SUITE: "deqp"
extends:
- .lava-test
- .use-arm_build
@@ -94,13 +95,28 @@ kernel+rootfs_armhf:
KERNEL_IMAGE_NAME: Image
KERNEL_IMAGE_TYPE: "type:\ image"
BOOT_METHOD: u-boot
+ TEST_SUITE: "deqp"
extends:
- .lava-test
- .use-arm_build
+ dependencies:
+ - meson-arm64
needs:
- - kernel+rootfs_arm64
+ - arm_build
- meson-arm64
+.lava-traces:armhf:
+ variables:
+ TEST_SUITE: "tracie"
+ extends:
+ - .lava-test:armhf
+
+.lava-traces:arm64:
+ variables:
+ TEST_SUITE: "tracie"
+ extends:
+ - .lava-test:arm64
+
panfrost-t720-gles2:arm64:
extends:
- .lava-test:arm64
@@ -125,34 +141,53 @@ panfrost-t760-gles2:armhf:
tags:
- mesa-ci-aarch64-lava-collabora
-panfrost-t860-gles2:arm64:
+panfrost-t760-traces:armhf:
extends:
- - .lava-test:arm64
+ - .lava-traces:armhf
- .panfrost-rules
variables:
- DEVICE_TYPE: rk3399-gru-kevin
- GPU_VERSION: panfrost-t860
+ DEVICE_TYPE: rk3288-veyron-jaq
+ GPU_VERSION: panfrost-t760
BOOT_METHOD: depthcharge
KERNEL_IMAGE_TYPE: ""
- ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
+ ENV_VARS: "PAN_MESA_DEBUG=deqp MESA_GLES_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=310"
tags:
- mesa-ci-aarch64-lava-collabora
-panfrost-t860-gles3:arm64:
- parallel: 2
+.lava-rk3399-gru-kevin:
extends:
- - .lava-test:arm64
- .panfrost-rules
variables:
DEVICE_TYPE: rk3399-gru-kevin
GPU_VERSION: panfrost-t860
BOOT_METHOD: depthcharge
KERNEL_IMAGE_TYPE: ""
- DEQP_VERSION: gles3
- ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
tags:
- mesa-ci-aarch64-lava-collabora
+panfrost-t860-gles2:arm64:
+ extends:
+ - .lava-test:arm64
+ - .lava-rk3399-gru-kevin
+ variables:
+ ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
+
+panfrost-t860-gles3:arm64:
+ parallel: 2
+ extends:
+ - .lava-test:arm64
+ - .lava-rk3399-gru-kevin
+ variables:
+ DEQP_VERSION: gles3
+ ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
+
+panfrost-t860-traces:arm64:
+ extends:
+ - .lava-traces:arm64
+ - .lava-rk3399-gru-kevin
+ variables:
+ ENV_VARS: "PAN_MESA_DEBUG=deqp MESA_GLES_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=310"
+
.panfrost-t820-gles2:arm64:
extends:
- .lava-test:arm64
diff --git a/.gitlab-ci/lava-tracie.yml.jinja2 b/.gitlab-ci/lava-tracie.yml.jinja2
new file mode 100644
index 00000000000..f8b6bcb37d8
--- /dev/null
+++ b/.gitlab-ci/lava-tracie.yml.jinja2
@@ -0,0 +1,98 @@
+job_name: mesa-tracie-{{ gpu_version }} {{ pipeline_info }}
+device_type: {{ device_type }}
+timeouts:
+ job:
+ minutes: 40
+ action:
+ minutes: 10
+ actions:
+ power-off:
+ seconds: 30
+priority: 75
+visibility: public
+{% if tags %}
+{% set lavatags = tags.split(',') %}
+tags:
+{% for tag in lavatags %}
+ - {{ tag }}
+{% endfor %}
+{% endif %}
+actions:
+- deploy:
+ timeout:
+ minutes: 10
+ to: tftp
+ kernel:
+ url: {{ base_artifacts_url }}/{{ kernel_image_name }}
+{% if kernel_image_type %}
+ {{ kernel_image_type }}
+{% endif %}
+ ramdisk:
+ url: {{ base_artifacts_url }}/lava-rootfs.cpio.gz
+ compression: gz
+ dtb:
+ url: {{ base_artifacts_url }}/{{ device_type }}.dtb
+ os: oe
+- boot:
+ timeout:
+ minutes: 5
+ method: {{ boot_method }}
+{% if boot_method == "fastboot" %}
+{#
+ For fastboot, LAVA doesn't know how to unpack the rootfs/apply overlay/repack,
+ so we transfer the overlay over the network after boot.
+#}
+ transfer_overlay:
+ download_command: wget -S --progress=dot:giga
+ unpack_command: tar -C / -xzf
+{% else %}
+ commands: ramdisk
+{% endif %}
+ prompts:
+ - 'lava-shell:'
+- test:
+ timeout:
+ minutes: 60
+ definitions:
+ - repository:
+ metadata:
+ format: Lava-Test Test Definition 1.0
+ name: tracie
+ description: "Mesa tracie test plan"
+ os:
+ - oe
+ scope:
+ - functional
+ run:
+ steps:
+ - mount -t proc none /proc
+ - mount -t sysfs none /sys
+ - mount -t devtmpfs none /dev || echo possibly already mounted
+ - mkdir -p /dev/pts
+ - mount -t devpts devpts /dev/pts
+ - echo "nameserver 8.8.8.8" > /etc/resolv.conf
+ - date "+%Y%m%d %H%M" -s "{{ date }}"
+
+
+{% if env_vars %}
+ - export {{ env_vars }}
+{% endif %}
+ # tracie-runner.sh assumes some stuff is in pwd
+ - cd /
+
+ - wget -S --progress=dot:giga -O- {{ mesa_url }} | tar -xz
+
+ - export PYTHONPATH=$(python3 -c "import sys;print(\":\".join(sys.path))")
+ - export LIBGL_DRIVERS_PATH=`pwd`/install/lib/dri
+ - export DEVICE_NAME="gl-{{ gpu_version }}"
+
+ - "if sh /install/tracie-runner-gl.sh; then
+ echo 'tracie: pass';
+ else
+ echo 'tracie: fail';
+ fi"
+ parse:
+ pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
+ from: inline
+ name: tracie
+ path: inline/mesa-tracie.yaml
diff --git a/.gitlab-ci/prepare-artifacts.sh b/.gitlab-ci/prepare-artifacts.sh
index 9bf5e3dcc7c..fb7cc6306d9 100755
--- a/.gitlab-ci/prepare-artifacts.sh
+++ b/.gitlab-ci/prepare-artifacts.sh
@@ -51,6 +51,7 @@ if [ -n "$UPLOAD_FOR_LAVA" ]; then
# Pass needed files to the test stage
cp $CI_PROJECT_DIR/.gitlab-ci/generate_lava.py artifacts/.
cp $CI_PROJECT_DIR/.gitlab-ci/lava-deqp.yml.jinja2 artifacts/.
+ cp $CI_PROJECT_DIR/.gitlab-ci/lava-tracie.yml.jinja2 artifacts/.
gzip -c artifacts/install.tar > mesa-${DEBIAN_ARCH}.tar.gz
ci-fairy minio login $CI_JOB_JWT
diff --git a/.gitlab-ci/traces.yml b/.gitlab-ci/traces.yml
index 0f756899f1a..1ec7603407f 100644
--- a/.gitlab-ci/traces.yml
+++ b/.gitlab-ci/traces.yml
@@ -9,18 +9,28 @@ traces:
checksum: 8867f3a41f180626d0d4b7661ff5c0f4
- device: gl-virgl
checksum: 8867f3a41f180626d0d4b7661ff5c0f4
+ - device: gl-panfrost-t860
+ checksum: 95df5e619a36e88fe408e45567a2d149
+ - device: gl-panfrost-t760
+ checksum: 30663eac9a4767d26fbf9b6db9712d9f
- path: glmark2/jellyfish.rdc
expectations:
- device: gl-vmware-llvmpipe
checksum: e0fe979fee129c0ed42a3059d1a4e1c9
- device: gl-virgl
checksum: e0fe979fee129c0ed42a3059d1a4e1c9
+ - device: gl-panfrost-t860
+ checksum: 1d609b089732be5b6e3e78370abcb149
+ - device: gl-panfrost-t760
+ checksum: f98ef9118eeaba660c15065dac46e580
- path: glxgears/glxgears.trace
expectations:
- device: gl-vmware-llvmpipe
checksum: 02aca9b4b4ad6fd60331df6e4f87f2cd
- device: gl-virgl
checksum: 02aca9b4b4ad6fd60331df6e4f87f2cd
+ - device: gl-panfrost-t860
+ checksum: 154039d7bebb366258ddfcc2f196286b
- path: KhronosGroup-Vulkan-Tools/vkcube.gfxr
expectations:
- device: vk-amd-polaris10