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>
This commit is contained in:
@@ -321,7 +321,7 @@ arm_build:
|
|||||||
- .fdo.container-build@debian@arm64v8
|
- .fdo.container-build@debian@arm64v8
|
||||||
- .container
|
- .container
|
||||||
variables:
|
variables:
|
||||||
FDO_DISTRIBUTION_TAG: &arm_build "2020-07-20-jflags"
|
FDO_DISTRIBUTION_TAG: &arm_build "2020-07-21-tracie"
|
||||||
|
|
||||||
.use-arm_build:
|
.use-arm_build:
|
||||||
variables:
|
variables:
|
||||||
|
@@ -30,6 +30,8 @@ apt-get -y install \
|
|||||||
pkg-config \
|
pkg-config \
|
||||||
python \
|
python \
|
||||||
python3-mako \
|
python3-mako \
|
||||||
|
python3-pil \
|
||||||
|
python3-requests \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
python3-setuptools \
|
python3-setuptools \
|
||||||
unzip \
|
unzip \
|
||||||
|
@@ -20,6 +20,7 @@ parser.add_argument("--env-vars", nargs='?', default="")
|
|||||||
parser.add_argument("--deqp-version")
|
parser.add_argument("--deqp-version")
|
||||||
parser.add_argument("--ci-node-index")
|
parser.add_argument("--ci-node-index")
|
||||||
parser.add_argument("--ci-node-total")
|
parser.add_argument("--ci-node-total")
|
||||||
|
parser.add_argument("--job-type")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
env = Environment(loader = FileSystemLoader(os.path.dirname(args.template)), trim_blocks=True, lstrip_blocks=True)
|
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.
|
# time from the network after boot.
|
||||||
values['date'] = datetime.datetime.now().strftime("%Y%m%d %H%M")
|
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.write(template.render(values))
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
variables:
|
variables:
|
||||||
DISTRIBUTION_TAG: "2020-07-10"
|
DISTRIBUTION_TAG: "2020-07-18"
|
||||||
|
|
||||||
.kernel+rootfs:
|
.kernel+rootfs:
|
||||||
stage: container-2
|
stage: container-2
|
||||||
@@ -46,7 +46,7 @@ kernel+rootfs_armhf:
|
|||||||
fi
|
fi
|
||||||
- >
|
- >
|
||||||
artifacts/generate_lava.py \
|
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}" \
|
--pipeline-info "$CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
|
||||||
--base-artifacts-url ${ARTIFACTS_URL} \
|
--base-artifacts-url ${ARTIFACTS_URL} \
|
||||||
--mesa-url ${MESA_URL} \
|
--mesa-url ${MESA_URL} \
|
||||||
@@ -60,13 +60,13 @@ kernel+rootfs_armhf:
|
|||||||
--lava-tags "${LAVA_TAGS}" \
|
--lava-tags "${LAVA_TAGS}" \
|
||||||
--ci-node-index "${CI_NODE_INDEX}" \
|
--ci-node-index "${CI_NODE_INDEX}" \
|
||||||
--ci-node-total "${CI_NODE_TOTAL}"
|
--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
|
- echo $lava_job_id
|
||||||
- rm -rf artifacts/*
|
- rm -rf artifacts/*
|
||||||
- cp lava-deqp.yml artifacts/.
|
- cp lava-${TEST_SUITE}.yml artifacts/.
|
||||||
- lavacli jobs logs $lava_job_id | tee artifacts/lava-deqp-$lava_job_id.log
|
- lavacli jobs logs $lava_job_id | tee artifacts/lava-${TEST_SUITE}-$lava_job_id.log
|
||||||
- lavacli jobs show $lava_job_id
|
- 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
|
- echo $result
|
||||||
- '[[ "$result" == "pass" ]]'
|
- '[[ "$result" == "pass" ]]'
|
||||||
artifacts:
|
artifacts:
|
||||||
@@ -81,6 +81,7 @@ kernel+rootfs_armhf:
|
|||||||
KERNEL_IMAGE_NAME: zImage
|
KERNEL_IMAGE_NAME: zImage
|
||||||
KERNEL_IMAGE_TYPE: "type:\ zimage"
|
KERNEL_IMAGE_TYPE: "type:\ zimage"
|
||||||
BOOT_METHOD: u-boot
|
BOOT_METHOD: u-boot
|
||||||
|
TEST_SUITE: "deqp"
|
||||||
extends:
|
extends:
|
||||||
- .lava-test
|
- .lava-test
|
||||||
- .use-arm_build
|
- .use-arm_build
|
||||||
@@ -94,12 +95,27 @@ kernel+rootfs_armhf:
|
|||||||
KERNEL_IMAGE_NAME: Image
|
KERNEL_IMAGE_NAME: Image
|
||||||
KERNEL_IMAGE_TYPE: "type:\ image"
|
KERNEL_IMAGE_TYPE: "type:\ image"
|
||||||
BOOT_METHOD: u-boot
|
BOOT_METHOD: u-boot
|
||||||
|
TEST_SUITE: "deqp"
|
||||||
extends:
|
extends:
|
||||||
- .lava-test
|
- .lava-test
|
||||||
- .use-arm_build
|
- .use-arm_build
|
||||||
needs:
|
dependencies:
|
||||||
- kernel+rootfs_arm64
|
|
||||||
- meson-arm64
|
- meson-arm64
|
||||||
|
needs:
|
||||||
|
- 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:
|
panfrost-t720-gles2:arm64:
|
||||||
extends:
|
extends:
|
||||||
@@ -125,33 +141,52 @@ panfrost-t760-gles2:armhf:
|
|||||||
tags:
|
tags:
|
||||||
- mesa-ci-aarch64-lava-collabora
|
- mesa-ci-aarch64-lava-collabora
|
||||||
|
|
||||||
panfrost-t860-gles2:arm64:
|
panfrost-t760-traces:armhf:
|
||||||
|
extends:
|
||||||
|
- .lava-traces:armhf
|
||||||
|
- .panfrost-rules
|
||||||
|
variables:
|
||||||
|
DEVICE_TYPE: rk3288-veyron-jaq
|
||||||
|
GPU_VERSION: panfrost-t760
|
||||||
|
BOOT_METHOD: depthcharge
|
||||||
|
KERNEL_IMAGE_TYPE: ""
|
||||||
|
ENV_VARS: "PAN_MESA_DEBUG=deqp MESA_GLES_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=310"
|
||||||
|
tags:
|
||||||
|
- mesa-ci-aarch64-lava-collabora
|
||||||
|
|
||||||
|
.lava-rk3399-gru-kevin:
|
||||||
extends:
|
extends:
|
||||||
- .lava-test:arm64
|
|
||||||
- .panfrost-rules
|
- .panfrost-rules
|
||||||
variables:
|
variables:
|
||||||
DEVICE_TYPE: rk3399-gru-kevin
|
DEVICE_TYPE: rk3399-gru-kevin
|
||||||
GPU_VERSION: panfrost-t860
|
GPU_VERSION: panfrost-t860
|
||||||
BOOT_METHOD: depthcharge
|
BOOT_METHOD: depthcharge
|
||||||
KERNEL_IMAGE_TYPE: ""
|
KERNEL_IMAGE_TYPE: ""
|
||||||
ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
|
|
||||||
tags:
|
tags:
|
||||||
- mesa-ci-aarch64-lava-collabora
|
- 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:
|
panfrost-t860-gles3:arm64:
|
||||||
parallel: 2
|
parallel: 2
|
||||||
extends:
|
extends:
|
||||||
- .lava-test:arm64
|
- .lava-test:arm64
|
||||||
- .panfrost-rules
|
- .lava-rk3399-gru-kevin
|
||||||
variables:
|
variables:
|
||||||
DEVICE_TYPE: rk3399-gru-kevin
|
|
||||||
GPU_VERSION: panfrost-t860
|
|
||||||
BOOT_METHOD: depthcharge
|
|
||||||
KERNEL_IMAGE_TYPE: ""
|
|
||||||
DEQP_VERSION: gles3
|
DEQP_VERSION: gles3
|
||||||
ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
|
ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
|
||||||
tags:
|
|
||||||
- mesa-ci-aarch64-lava-collabora
|
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:
|
.panfrost-t820-gles2:arm64:
|
||||||
extends:
|
extends:
|
||||||
|
98
.gitlab-ci/lava-tracie.yml.jinja2
Normal file
98
.gitlab-ci/lava-tracie.yml.jinja2
Normal file
@@ -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
|
@@ -51,6 +51,7 @@ if [ -n "$UPLOAD_FOR_LAVA" ]; then
|
|||||||
# Pass needed files to the test stage
|
# Pass needed files to the test stage
|
||||||
cp $CI_PROJECT_DIR/.gitlab-ci/generate_lava.py artifacts/.
|
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-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
|
gzip -c artifacts/install.tar > mesa-${DEBIAN_ARCH}.tar.gz
|
||||||
ci-fairy minio login $CI_JOB_JWT
|
ci-fairy minio login $CI_JOB_JWT
|
||||||
|
@@ -9,18 +9,28 @@ traces:
|
|||||||
checksum: 8867f3a41f180626d0d4b7661ff5c0f4
|
checksum: 8867f3a41f180626d0d4b7661ff5c0f4
|
||||||
- device: gl-virgl
|
- device: gl-virgl
|
||||||
checksum: 8867f3a41f180626d0d4b7661ff5c0f4
|
checksum: 8867f3a41f180626d0d4b7661ff5c0f4
|
||||||
|
- device: gl-panfrost-t860
|
||||||
|
checksum: 95df5e619a36e88fe408e45567a2d149
|
||||||
|
- device: gl-panfrost-t760
|
||||||
|
checksum: 30663eac9a4767d26fbf9b6db9712d9f
|
||||||
- path: glmark2/jellyfish.rdc
|
- path: glmark2/jellyfish.rdc
|
||||||
expectations:
|
expectations:
|
||||||
- device: gl-vmware-llvmpipe
|
- device: gl-vmware-llvmpipe
|
||||||
checksum: e0fe979fee129c0ed42a3059d1a4e1c9
|
checksum: e0fe979fee129c0ed42a3059d1a4e1c9
|
||||||
- device: gl-virgl
|
- device: gl-virgl
|
||||||
checksum: e0fe979fee129c0ed42a3059d1a4e1c9
|
checksum: e0fe979fee129c0ed42a3059d1a4e1c9
|
||||||
|
- device: gl-panfrost-t860
|
||||||
|
checksum: 1d609b089732be5b6e3e78370abcb149
|
||||||
|
- device: gl-panfrost-t760
|
||||||
|
checksum: f98ef9118eeaba660c15065dac46e580
|
||||||
- path: glxgears/glxgears.trace
|
- path: glxgears/glxgears.trace
|
||||||
expectations:
|
expectations:
|
||||||
- device: gl-vmware-llvmpipe
|
- device: gl-vmware-llvmpipe
|
||||||
checksum: 02aca9b4b4ad6fd60331df6e4f87f2cd
|
checksum: 02aca9b4b4ad6fd60331df6e4f87f2cd
|
||||||
- device: gl-virgl
|
- device: gl-virgl
|
||||||
checksum: 02aca9b4b4ad6fd60331df6e4f87f2cd
|
checksum: 02aca9b4b4ad6fd60331df6e4f87f2cd
|
||||||
|
- device: gl-panfrost-t860
|
||||||
|
checksum: 154039d7bebb366258ddfcc2f196286b
|
||||||
- path: KhronosGroup-Vulkan-Tools/vkcube.gfxr
|
- path: KhronosGroup-Vulkan-Tools/vkcube.gfxr
|
||||||
expectations:
|
expectations:
|
||||||
- device: vk-amd-polaris10
|
- device: vk-amd-polaris10
|
||||||
|
Reference in New Issue
Block a user