aboutsummaryrefslogtreecommitdiff
path: root/zephyr-tutorial
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr-tutorial')
-rwxr-xr-xzephyr-tutorial/builders.sh54
-rw-r--r--zephyr-tutorial/lava-job-definitions/arduino101/template.yaml57
-rw-r--r--zephyr-tutorial/lava-job-definitions/frdm-k64f/template.yaml49
-rw-r--r--zephyr-tutorial/lava-job-definitions/frdm-kw41z/template.yaml49
-rw-r--r--zephyr-tutorial/lava-job-definitions/qemu/template.yaml55
-rw-r--r--zephyr-tutorial/submit_to_lava_lite.py78
6 files changed, 342 insertions, 0 deletions
diff --git a/zephyr-tutorial/builders.sh b/zephyr-tutorial/builders.sh
new file mode 100755
index 00000000..ffd37011
--- /dev/null
+++ b/zephyr-tutorial/builders.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+sudo apt-get -q=2 update
+sudo apt-get -q=2 -y install git g++ g++-multilib gperf python3-ply \
+ python3-yaml gcc-arm-none-eabi python-requests rsync device-tree-compiler \
+ python3-pip
+
+set -ex
+
+# Distro package is too old for Zephyr
+sudo pip3 install pyelftools pykwalify
+
+git clone -b ${BRANCH} https://git.linaro.org/lite/zephyr.git ${WORKSPACE}
+git clean -fdx
+if [ -n "${GIT_COMMIT}" ]; then
+ git reset --hard ${GIT_COMMIT}
+fi
+echo "GIT_COMMIT=$(git rev-parse --short=8 HEAD)" > env_var_parameters
+
+head -5 Makefile
+
+# Toolchains are pre-installed and come from:
+# https://github.com/zephyrproject-rtos/meta-zephyr-sdk/releases/download/0.9.2/zephyr-sdk-0.9.2-setup.run
+# To install Zephyr SDK: ./zephyr-sdk-0.9.2-setup.run --quiet --nox11 -- <<< "${HOME}/srv/toolchain/zephyr-sdk-0.9.2"
+
+export ZEPHYR_SDK_INSTALL_DIR="${HOME}/srv/toolchain/zephyr-sdk-0.9.2"
+
+# Set build environment variables
+LANG=C
+ZEPHYR_BASE=${WORKSPACE}
+PATH=${ZEPHYR_BASE}/scripts:${PATH}
+OUTDIR=${HOME}/srv/zephyr/${PLATFORM}
+export LANG ZEPHYR_BASE PATH
+env |grep '^ZEPHYR'
+
+echo ""
+echo "########################################################################"
+echo " make -C tests/kernel/common "
+echo "########################################################################"
+
+cd ${WORKSPACE}
+make -C ${WORKSPACE}/tests/kernel/common O=${OUTDIR} BOARD=${PLATFORM}
+
+# OUTDIR is per-platform.
+find ${OUTDIR} -type f -name '.config' -exec rename 's/.config/zephyr.config/' {} +
+rsync -avm \
+ --include=zephyr.bin \
+ --include=zephyr.config \
+ --include=zephyr.elf \
+ --include='*/' \
+ --exclude='*' \
+ ${OUTDIR} out/
+find ${OUTDIR} -type f -name 'zephyr.config' -delete
+
diff --git a/zephyr-tutorial/lava-job-definitions/arduino101/template.yaml b/zephyr-tutorial/lava-job-definitions/arduino101/template.yaml
new file mode 100644
index 00000000..67d15ebf
--- /dev/null
+++ b/zephyr-tutorial/lava-job-definitions/arduino101/template.yaml
@@ -0,0 +1,57 @@
+# Zephyr JOB definition for Arduino101
+device_type: '$device_type'
+job_name: 'zephyr-upstream $test_name'
+
+timeouts:
+ job:
+ minutes: 30
+ action:
+ minutes: 5
+ actions:
+ lava-test-monitor:
+ seconds: 300
+ wait-usb-device:
+ seconds: 20
+ flash-dfu:
+ seconds: 60
+ connections:
+ lava-test-monitor:
+ seconds: 300
+
+priority: medium
+visibility: public
+
+actions:
+- deploy:
+ timeout:
+ minutes: 3
+ to: tmpfs
+ images:
+ app:
+ image_arg: --alt x86_app --download {app}
+ url: '$test_url'
+
+- boot:
+ method: dfu
+ timeout:
+ minutes: 10
+
+- test:
+ timeout:
+ minutes: 10
+ monitors:
+ - name: '$test_name'
+ start: (tc_start\(\)|starting .*test|BOOTING ZEPHYR OS)
+ end: PROJECT EXECUTION
+ pattern: (?P<result>(PASS|FAIL))\s-\s(?P<test_case_id>\w+)\.
+ fixupdict:
+ PASS: pass
+ FAIL: fail
+
+metadata:
+ build-url: $build_url
+ build-log: $build_url/consoleText
+ zephyr-gcc-variant: $gcc_variant
+ platform: $board_name
+ git-url: https://git.linaro.org/zephyrproject-org/zephyr.git
+ git-commit: $git_commit
diff --git a/zephyr-tutorial/lava-job-definitions/frdm-k64f/template.yaml b/zephyr-tutorial/lava-job-definitions/frdm-k64f/template.yaml
new file mode 100644
index 00000000..f0c44244
--- /dev/null
+++ b/zephyr-tutorial/lava-job-definitions/frdm-k64f/template.yaml
@@ -0,0 +1,49 @@
+# Zephyr JOB definition for frdm-k64f
+device_type: '$device_type'
+job_name: 'zephyr-upstream $test_name'
+
+timeouts:
+ job:
+ minutes: 30
+ action:
+ minutes: 3
+ actions:
+ wait-usb-device:
+ seconds: 40
+
+priority: medium
+visibility: public
+
+actions:
+- deploy:
+ timeout:
+ minutes: 3
+ to: tmpfs
+ images:
+ zephyr:
+ url: '$test_url'
+
+- boot:
+ method: cmsis-dap
+ timeout:
+ minutes: 10
+
+- test:
+ timeout:
+ minutes: 10
+ monitors:
+ - name: '$test_name'
+ start: (tc_start\(\)|starting .*test|BOOTING ZEPHYR OS)
+ end: PROJECT EXECUTION
+ pattern: (?P<result>(PASS|FAIL))\s-\s(?P<test_case_id>\w+)\.
+ fixupdict:
+ PASS: pass
+ FAIL: fail
+
+metadata:
+ build-url: $build_url
+ build-log: $build_url/consoleText
+ zephyr-gcc-variant: $gcc_variant
+ platform: $board_name
+ git-url: https://git.linaro.org/zephyrproject-org/zephyr.git
+ git-commit: $git_commit
diff --git a/zephyr-tutorial/lava-job-definitions/frdm-kw41z/template.yaml b/zephyr-tutorial/lava-job-definitions/frdm-kw41z/template.yaml
new file mode 100644
index 00000000..6165856a
--- /dev/null
+++ b/zephyr-tutorial/lava-job-definitions/frdm-kw41z/template.yaml
@@ -0,0 +1,49 @@
+# Zephyr JOB definition for frdm-kw41z
+device_type: '$device_type'
+job_name: 'zephyr-upstream $test_name'
+
+timeouts:
+ job:
+ minutes: 30
+ action:
+ minutes: 3
+ actions:
+ wait-usb-device:
+ seconds: 40
+
+priority: medium
+visibility: public
+
+actions:
+- deploy:
+ timeout:
+ minutes: 3
+ to: tmpfs
+ images:
+ zephyr:
+ url: '$test_url'
+
+- boot:
+ method: pyocd
+ timeout:
+ minutes: 10
+
+- test:
+ timeout:
+ minutes: 10
+ monitors:
+ - name: '$test_name'
+ start: (tc_start\(\)|starting .*test|BOOTING ZEPHYR OS)
+ end: PROJECT EXECUTION
+ pattern: (?P<result>(PASS|FAIL))\s-\s(?P<test_case_id>\w+)\.
+ fixupdict:
+ PASS: pass
+ FAIL: fail
+
+metadata:
+ build-url: $build_url
+ build-log: $build_url/consoleText
+ zephyr-gcc-variant: $gcc_variant
+ platform: $board_name
+ git-url: https://git.linaro.org/zephyrproject-org/zephyr.git
+ git-commit: $git_commit
diff --git a/zephyr-tutorial/lava-job-definitions/qemu/template.yaml b/zephyr-tutorial/lava-job-definitions/qemu/template.yaml
new file mode 100644
index 00000000..38a3d330
--- /dev/null
+++ b/zephyr-tutorial/lava-job-definitions/qemu/template.yaml
@@ -0,0 +1,55 @@
+# Zephyr JOB definition for QEMU
+device_type: '$device_type'
+job_name: 'zephyr-upstream $test_name'
+
+timeouts:
+ job:
+ minutes: 30
+ action:
+ minutes: 2
+priority: medium
+visibility: public
+
+context:
+ arch: arm
+ cpu: cortex-m3
+ machine: lm3s6965evb
+ model: 'model=stellaris'
+ serial: '-serial mon:stdio'
+ vga: '-vga none'
+
+actions:
+- deploy:
+ timeout:
+ minutes: 3
+ to: tmpfs
+ images:
+ zephyr:
+ image_arg: '-kernel {zephyr}'
+ url: '$test_url'
+
+- boot:
+ method: qemu
+ timeout:
+ minutes: 2
+
+- test:
+ timeout:
+ minutes: 10
+ monitors:
+ - name: '$test_name'
+ start: (tc_start\(\)|starting .*test|BOOTING ZEPHYR OS)
+ end: PROJECT EXECUTION
+ pattern: (?P<result>(PASS|FAIL))\s-\s(?P<test_case_id>\w+)\.
+ fixupdict:
+ PASS: pass
+ FAIL: fail
+
+metadata:
+ build-url: $build_url
+ build-log: $build_url/consoleText
+ zephyr-gcc-variant: $gcc_variant
+ platform: $board_name
+ git-url: https://git.linaro.org/zephyrproject-org/zephyr.git
+ git-commit: $git_commit
+
diff --git a/zephyr-tutorial/submit_to_lava_lite.py b/zephyr-tutorial/submit_to_lava_lite.py
new file mode 100644
index 00000000..09fcdcdb
--- /dev/null
+++ b/zephyr-tutorial/submit_to_lava_lite.py
@@ -0,0 +1,78 @@
+#!/usr/lib/python
+
+import argparse
+import os
+from string import Template
+import sys
+import xmlrpclib
+
+# Command line args
+# Device type
+# Board name (platform)
+# Username
+# Token
+# LAVA server (incl /RPC2)
+# Build URL
+# Branch name
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--device-type",
+ help="Device type in LAVA",
+ dest="device_type",
+ required=True)
+ parser.add_argument("--board-name",
+ help="Zephyr platform name",
+ dest="board_name",
+ required=True)
+ parser.add_argument("--lava-user",
+ help="LAVA user",
+ dest="lava_user",
+ default=os.environ.get('LAVA_USER'))
+ parser.add_argument("--lava-token",
+ help="LAVA token",
+ dest="lava_token",
+ default=os.environ.get('LAVA_TOKEN'))
+ parser.add_argument("--lava-server",
+ help="LAVA server URL",
+ dest="lava_server",
+ required=True)
+ parser.add_argument("--branch-name",
+ help="branch name",
+ dest="branch_name",
+ required=True)
+ parser.add_argument("--build-url",
+ help="Jenkins build url",
+ dest="build_url",
+ required=True)
+
+ args = parser.parse_args()
+
+# server = xmlrpclib.ServerProxy("http://%s:%s@%s/RPC2" % (username, token, hostname))
+
+# TODO : Build the job file here from the template
+#
+#
+# jobtext = jobfile.read()
+
+# TODO : Sumbit the job
+# id = server.scheduler.submit_job(jobtext)
+# print server.scheduler.job_status(id)
+
+# try:
+# results = server.scheduler.submit_job(jobtext)
+# except xmlrpclib.ProtocolError as err:
+# print("LAVA submission failed")
+# print("Error code: %d" % err.errcode)
+# print("Error message: %s" % err.errmsg)
+
+# TODO : Poll server.scheduler.job_status(id) with a timeout for completion
+#
+#
+
+ print("** submit_to_lava_lite.py")
+
+
+if __name__ == "__main__":
+ main()
+