diff options
author | Rohan Garg <rohan.garg@collabora.com> | 2020-01-28 15:19:53 +0100 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-07-21 09:22:18 +0000 |
commit | 087be7e322013fd7f2ba918502c172226f0c9af6 (patch) | |
tree | 6e4ffe160456de189f7a273ea7915a3450811f6b | |
parent | 576c53dadf3f60bc363a39e85625afb67a2cbb8d (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.yml | 2 | ||||
-rw-r--r-- | .gitlab-ci/container/arm_build.sh | 2 | ||||
-rwxr-xr-x | .gitlab-ci/generate_lava.py | 3 | ||||
-rw-r--r-- | .gitlab-ci/lava-gitlab-ci.yml | 69 | ||||
-rw-r--r-- | .gitlab-ci/lava-tracie.yml.jinja2 | 98 | ||||
-rwxr-xr-x | .gitlab-ci/prepare-artifacts.sh | 1 | ||||
-rw-r--r-- | .gitlab-ci/traces.yml | 10 |
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 |