diff options
author | Corentin LABBE <clabbe@baylibre.com> | 2020-07-22 14:01:10 +0200 |
---|---|---|
committer | Corentin LABBE <clabbe@baylibre.com> | 2020-07-22 14:03:27 +0200 |
commit | 78b2b53df5488b1f1f1b318b34aa6ab721fdeda5 (patch) | |
tree | 61e032ff617178d174897b4dca5ad6b35a051a19 /test | |
parent | 5cbbce37ba330f9617d27b561cb260a104d3dcb1 (diff) |
SPEC-3414: add tests used for testing releng-scriptsjellyfish_9.99.4jellyfish_9.99.3jellyfish_9.99.2jellyfish/9.99.4jellyfish/9.99.3jellyfish/9.99.29.99.49.99.39.99.2
When working on SPEC-3414, I did some test tool for releng-scripts.
This patchs adds them.
- test.sh scan artefacts and try to generated jobs with them
- checkjobs.py check all ran jobs and try to detect if there was apps
jobs and if they has errors.
Change-Id: Iab21573741ab4fa3cdfc29fd0d7aab33c904d838
Bug-AGL: SPEC-3414
Signed-off-by: Corentin LABBE <clabbe@baylibre.com>
Diffstat (limited to 'test')
-rwxr-xr-x | test/checkjobs.py | 27 | ||||
-rwxr-xr-x | test/test.sh | 88 |
2 files changed, 115 insertions, 0 deletions
diff --git a/test/checkjobs.py b/test/checkjobs.py new file mode 100755 index 0000000..529d2fb --- /dev/null +++ b/test/checkjobs.py @@ -0,0 +1,27 @@ +#!/usr/bin/python3 + +import re +import yaml +import os +import xmlrpc.client + +lserver = xmlrpc.client.ServerProxy(os.getenv("LAVAURI"), allow_none=True) + +offset = 0 +while offset < 100: + jlist = lserver.scheduler.jobs.list('FINISHED', None, offset, 100, None, False) + for job in jlist: + if job["submitter"] == 'lava-health': + continue + jobid = job["id"] + print(jobid) + job_out_raw = lserver.scheduler.job_output(jobid) + job_out = yaml.safe_load(job_out_raw.data) + for job_out_line in job_out: + if job_out_line["lvl"] == 'debug' and isinstance(job_out_line["msg"], str) and re.search('APPURL=', job_out_line["msg"]): + print(job_out_line) + if job_out_line["lvl"] == 'target' and re.search('WGTNAME=', job_out_line["msg"]): + print(job_out_line) + if job_out_line["lvl"] == 'target' and re.search('ERROR', job_out_line["msg"]): + print(job_out_line) + offset += 100 diff --git a/test/test.sh b/test/test.sh new file mode 100755 index 0000000..22bf9b5 --- /dev/null +++ b/test/test.sh @@ -0,0 +1,88 @@ +#!/bin/sh + +# scan remaining artifacts for generating jobs +# if LAVA_URL is set in testenv, all generated jobs are sent to LAVA + +mkdir output + +# hardcoded test + +echo "TEST 1" +./utils/create-jobs.py --machine qemux86-64 --branch guppy --version latest --build-type ci \ + --changeid 1234 \ + --patchset 5678 \ + --applications-url https://download.automotivelinux.org/AGL/upload/ci/20581/1/guppy/x86-64/ > output/test +echo "TEST 2" +./utils/create-jobs.py --machine raspberrypi4 --branch guppy \ + --version latest \ + --build-type ci \ + --changeid 1234 \ + --patchset 5678 \ + --applications-url https://download.automotivelinux.org/AGL/upload/ci/20581/1/guppy/x86-64/ > output/test + + +CI=http://download.automotivelinux.org/AGL/upload/ci/ + +if [ -e testenv ];then + #. $(pwd)/testenv + echo "using env" +fi + +wget -q $CI -O cilist || exit $? + +grep -o "[0-9][0-9][0-9][0-9][0-9]*/" cilist | sort | uniq | sed 's,/$,,' | +while read CIID +do + echo "$CIID" + wget -q $CI/$CIID/ -O revid + grep -o "[0-9][0-9]*/" revid | sort | uniq | sed 's,/$,,' | + while read REVID + do + wget -q $CI/$CIID/$REVID -O machines + grep -o '"[a-z0-9-][a-z0-9-]*/"' machines | cut -d'"' -f2 | sed 's,/$,,' | + while read MACHINE + do + RMACHINE=$MACHINE + case $MACHINE in + h3ulcb-nogfx) + RMACHINE=h3ulcb-kf + ;; + master) + # HACK: we are in a app + continue + ;; + esac + echo "TEST: $CIID $REVID $MACHINE $RMACHINE" + ./utils/job-prereq.py --machine $RMACHINE --build-type ci $CIID $REVID --kernel || exit $? + ./utils/job-prereq.py --machine $RMACHINE --build-type ci $CIID $REVID --dtb || exit $? + ./utils/job-prereq.py --machine $RMACHINE --build-type ci $CIID $REVID --initrd || exit $? + ./utils/job-prereq.py --machine $RMACHINE --build-type ci $CIID $REVID --nbdroot || exit $? + if [ -z "$LAVA_URL" ];then + EXTRA_OPTS="" + else + EXTRA_OPTS="--callback-from lab-agl-core --callback-to Baylibre" + fi + ./utils/create-jobs.py --machine $RMACHINE --build-type ci \ + --changeid $CIID --patchset $REVID $EXTRA_OPTS > output/job-$MACHINE + if [ -z "$LAVA_URL" ];then + continue + fi + if [ $MACHINE = 'qemuarm' -o $MACHINE = 'qemuarm64' -o $MACHINE = 'qemux86-64' ];then + sed -i "s,job_name:.*,job_name: releng-test for $MACHINE ($CIID $REVID)," output/job-$MACHINE + echo "SEND" + lavacli --uri $LAVA_URL jobs submit output/job-$MACHINE > jobid + if [ $? -eq 0 ];then + lavacli --uri $LAVA_URL jobs wait $(cut -d' ' -f1 jobid) + lavacli --uri $LAVA_URL jobs show $(cut -d' ' -f1 jobid) + fi + rm jobid + fi + done + rm machines + done + rm revid +done + +rm cilist + +exit 0 |