Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
574edd3
Remove contents unrelated to Qualcomm platforms
mwasilew Oct 15, 2025
9b6d126
Add flasher type
mwasilew Oct 17, 2025
3af9f10
Add qcs6490-rb3gen2-core-kit device
mwasilew Oct 17, 2025
bd4619d
Rename lt-qcom to meta-qcom
mwasilew Oct 17, 2025
6769dd4
Add devices supported in meta-qcom
mwasilew Oct 17, 2025
a95d523
Update test workflow
mwasilew Oct 17, 2025
a5256a1
Rename tests for lt_qcom to meta_qcom
mwasilew Oct 17, 2025
5a9b5b6
Fix black formatting
mwasilew Oct 17, 2025
b26ed28
Fixup: rename lt-qcom to meta-qcom
mwasilew Oct 17, 2025
f7bd1d2
flasher: add default for IMAGE_FILE_NAME
mwasilew Oct 17, 2025
29480cb
Only run tests using python3.12
mwasilew Oct 17, 2025
b2b6f3e
Disable parallel testing
mwasilew Oct 17, 2025
79fba41
Rename test plans for meta-qcom
mwasilew Oct 22, 2025
0f6f7ad
Remove unnecessary tests from test plans
mwasilew Oct 22, 2025
32ad8fe
Create testplan for qcom-deb-images
mwasilew Oct 22, 2025
30ed21b
Remove "kernel" test plan from meta-qcom
mwasilew Oct 22, 2025
cefd333
Change pyproject contact names
mwasilew Oct 22, 2025
2bd3eff
Rename metadat filename for meta-qcom/poky-alcfg
mwasilew Oct 24, 2025
c41f124
Remove systemd.log_level from base template
mwasilew Oct 24, 2025
f9d987a
Make OS optional for fastboot deployment
mwasilew Oct 24, 2025
2e1861b
Rename meta-qcom metadata to proper name
mwasilew Oct 24, 2025
753a753
Remove LXC deployment from meta-qcom/fastboot deployment
mwasilew Oct 24, 2025
d401c8f
Add support for HTTP authentication headers
mwasilew Oct 24, 2025
5af5dba
Add support for flasher deployment in meta-qcom
mwasilew Oct 24, 2025
84faf24
Fix flasher metadata in meta-qcom project
mwasilew Oct 24, 2025
580f388
Fix metadata section in meta-qcom/flasher
mwasilew Oct 24, 2025
e3008f9
Fix overlay in flasher
mwasilew Oct 24, 2025
ae93167
Add qcom-deb-images project
mwasilew Oct 27, 2025
5cbb62d
Fix unit tests
mwasilew Oct 27, 2025
44db227
Improve logging
mwasilew Oct 27, 2025
a774e0c
Add test for qcom-deb-images
mwasilew Oct 27, 2025
a90eae2
Update README
mwasilew Oct 31, 2025
054bc5d
Merge pull request #1 from mwasilew/qualcomm
mwasilew Oct 31, 2025
a453989
Allow to save dry-run templates in custom directory
mwasilew Nov 10, 2025
d75ea04
Merge pull request #2 from mwasilew/dry-run-path
mwasilew Nov 12, 2025
5dfa598
Fix error handling in case of missing templates
mwasilew Nov 12, 2025
2e257e4
Remove KERNEL_BRANCH from job name
mwasilew Nov 14, 2025
d17aa59
Merge pull request #3 from mwasilew/fix_error_handling
mwasilew Nov 19, 2025
f786be9
Add Qualcomm pre-merge test job
mwasilew Dec 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/test-plans-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6]
python-version: ['3.12']

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v6
with:
python-version: '3.x'
python-version: ${{ matrix.python-version}}

- name: Install deps
run: |
Expand All @@ -23,7 +23,7 @@ jobs:
pip install flit
pip install tuxpkg
pip install py
pip install pytest==8.0.0
pip install pytest==8.4.2
pip install pytest-cov
pip install pytest-parallel
export FLIT_ROOT_INSTALL=1
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
all: typecheck test style flake8

export PROJECT := lava-test-plans
export NUM_WORKERS ?= $(shell nproc)
#export NUM_WORKERS ?= $(shell nproc)
export TUXPKG_MIN_COVERAGE ?= 57

include $(shell tuxpkg get-makefile)
44 changes: 7 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
![Build Status](https://github.com/Linaro/lava-test-plans/actions/workflows/test-plans-pipeline.yml/badge.svg)
![REUSE Compliance Check](https://github.com/Linaro/lava-test-plans/actions/workflows/reuse.yml/badge.svg)
![Build Status](https://github.com/qualcomm-linux/lava-test-plans/actions/workflows/test-plans-pipeline.yml/badge.svg)
![REUSE Compliance Check](https://github.com/qualcomm-linux/lava-test-plans/actions/workflows/reuse.yml/badge.svg)

# lava-test-plans

Expand All @@ -8,18 +8,10 @@ It generates the LAVA job definition file from a set of templates.

# Installation

Install lava-test-plans from pip:
Install lava-test-plans from this repository

lava-test-plans -h

or

via podman/docker:

docker run -i -t lavasoftware/lava-test-plans /bin/bash

lavasoftware/lava-test-plans:latest points to the latest released version.
lavasoftware/lava-test-plans:master points to the latest development.
virtualenv -p python3 venv
pip install .

If the above commands succeed, you can run to check that the program starts correctly

Expand All @@ -29,25 +21,9 @@ If the above commands succeed, you can run to check that the program starts corr

To install the latest development version:

git clone https://github.com/Linaro/lava-test-plans.git
git clone https://github.com/qualcomm-linux/lava-test-plans.git
cd ./lava-test-plans

pip3 install flit
flit install --symlink

or

You need to do if you have docker installed:

docker run --volume $HOME/path/to/lava-test-plans:/xyz -i -t lavasoftware/lava-test-plans /bin/bash
cd /xyz

lavasoftware/lava-test-plans:latest points to the latest released version.
lavasoftware/lava-test-plans:master points to the latest development.

There will be a directory with /lava-test-plans from either a "released"
version or directly from master.

If the above commands succeed, you can run to check that the program starts correctly

python3 -m lava_test_plans -h
Expand Down Expand Up @@ -96,11 +72,5 @@ Overall job timeout is a sum of action timeouts. There are 6 components:

When LXC is not in use all *lxc_* timeouts are set to 0. *test_timeout* is defined for each test template. *target_* timeouts can be set separately for each device.

# CI for docker multiarch builds
lava-test-plans gets mirrored to gitlab
https://gitlab.com/Linaro/lava-test-plans to build multiarch docker containers
and publish them to https://hub.docker.com/r/lavasoftware/lava-test-plans, that
is why there is a .gitlab-ci.yml in this repository.

# Repository
Pull requests are welcome to https://github.com/linaro/lava-test-plans.
Pull requests are welcome to https://github.com/qualcomm-linux/lava-test-plans.
17 changes: 15 additions & 2 deletions lava_test_plans/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
StrictUndefined,
make_logging_undefined,
)
from jinja2.exceptions import UndefinedError, TemplateSyntaxError
from jinja2.exceptions import UndefinedError, TemplateSyntaxError, TemplateNotFound
from ruamel.yaml import YAML
from ruamel.yaml.constructor import (
DuplicateKeyError,
Expand All @@ -42,7 +42,7 @@
validate_variables,
)

FORMAT = "[%(funcName)16s() ] %(message)s"
FORMAT = "[%(module)s][%(funcName)16s() %(lineno)d ] %(message)s"
logging.basicConfig(level=logging.INFO, format=FORMAT)
logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -283,6 +283,11 @@ def main():
action="store_true",
dest="dryrun",
)
parser.add_argument(
"--dry-run-path",
help="""Path to the directory where rendered templates will be saved""",
dest="dry_run_path",
)
parser.add_argument(
"--test-lava-validity",
help="""Test generated templates using LAVA container validator""",
Expand Down Expand Up @@ -321,6 +326,8 @@ def main():
exit_code = 0

output_path = os.path.abspath(os.path.join(script_dirname, "..", "tmp"))
if args.dry_run_path:
output_path = os.path.abspath(args.dry_run_path)

if not os.path.isabs(args.testplan_path):
if not os.path.isdir(args.testplan_path):
Expand Down Expand Up @@ -441,6 +448,12 @@ def main():
logger.error("Trying to render: %s" % testpath)
logger.error("\tissue: %s" % e.message)
exit_code = 1
except TemplateNotFound as e:
logger.error("File not found")
logger.error(e.message)
exit_code = 1
if exit_code != 0:
return exit_code
if args.dryrun and lava_job is not None:
testpath = os.path.join(
output_path, args.device_type, os.path.basename(test)
Expand Down
12 changes: 0 additions & 12 deletions lava_test_plans/devices/e850-96

This file was deleted.

59 changes: 0 additions & 59 deletions lava_test_plans/devices/hi6220-hikey-r2

This file was deleted.

19 changes: 0 additions & 19 deletions lava_test_plans/devices/hi960-hikey

This file was deleted.

9 changes: 9 additions & 0 deletions lava_test_plans/devices/iq-9075-evk
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{% set PROJECT = PROJECT|default("") %}
{% extends PROJECT+"flasher.jinja2" %}

{% set BOOT_OS_PROMPT = BOOT_OS_PROMPT|default("root@iq-9075-evk") %}
{% set ROOTFS_URL_COMP = ROOTFS_URL_COMP|default("gz") %}

{% set rootfs_label = 'rootfs' %}

{% block device_type %}iq-9075-evk{% endblock %}
18 changes: 0 additions & 18 deletions lava_test_plans/devices/juno

This file was deleted.

51 changes: 0 additions & 51 deletions lava_test_plans/devices/juno-r2

This file was deleted.

9 changes: 9 additions & 0 deletions lava_test_plans/devices/qcs615-adp-air
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{% set PROJECT = PROJECT|default("") %}
{% extends PROJECT+"flasher.jinja2" %}

{% set BOOT_OS_PROMPT = BOOT_OS_PROMPT|default("root@qcs615-adp-air") %}
{% set ROOTFS_URL_COMP = ROOTFS_URL_COMP|default("gz") %}

{% set rootfs_label = 'rootfs' %}

{% block device_type %}qcs615-adp-air{% endblock %}
9 changes: 9 additions & 0 deletions lava_test_plans/devices/qcs6490-rb3gen2-core-kit
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{% set PROJECT = PROJECT|default("") %}
{% extends PROJECT+"flasher.jinja2" %}

{% set BOOT_OS_PROMPT = BOOT_OS_PROMPT|default("root@qcs6490-rb3gen2-core-kit") %}
{% set ROOTFS_URL_COMP = ROOTFS_URL_COMP|default("gz") %}

{% set rootfs_label = 'rootfs' %}

{% block device_type %}qcs6490-rb3gen2-core-kit{% endblock %}
9 changes: 9 additions & 0 deletions lava_test_plans/devices/qcs8300-ride-sx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{% set PROJECT = PROJECT|default("") %}
{% extends PROJECT+"flasher.jinja2" %}

{% set BOOT_OS_PROMPT = BOOT_OS_PROMPT|default("root@qcs8300-ride-sx") %}
{% set ROOTFS_URL_COMP = ROOTFS_URL_COMP|default("gz") %}

{% set rootfs_label = 'rootfs' %}

{% block device_type %}qcs8300-ride-sx{% endblock %}
9 changes: 9 additions & 0 deletions lava_test_plans/devices/qcs9100-ride-sx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{% set PROJECT = PROJECT|default("") %}
{% extends PROJECT+"flasher.jinja2" %}

{% set BOOT_OS_PROMPT = BOOT_OS_PROMPT|default("root@qcs9100-ride-sx") %}
{% set ROOTFS_URL_COMP = ROOTFS_URL_COMP|default("gz") %}

{% set rootfs_label = 'rootfs' %}

{% block device_type %}qcs9100-ride-sx{% endblock %}
9 changes: 9 additions & 0 deletions lava_test_plans/devices/qrb2210-rb1-core-kit
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{% set PROJECT = PROJECT|default("") %}
{% extends PROJECT+"flasher.jinja2" %}

{% set BOOT_OS_PROMPT = BOOT_OS_PROMPT|default("root@qrb2210-rb1-core-kit") %}
{% set ROOTFS_URL_COMP = ROOTFS_URL_COMP|default("gz") %}

{% set rootfs_label = 'rootfs' %}

{% block device_type %}qrb2210-rb1-core-kit{% endblock %}
Loading
Loading