Skip to content

Commit

Permalink
Add prototype appliance test definition for integration testing
Browse files Browse the repository at this point in the history
Signed-off-by: Stevan Radaković <[email protected]>
  • Loading branch information
stevanradakovic committed Dec 8, 2024
1 parent 978d12e commit 90ce92b
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 0 deletions.
24 changes: 24 additions & 0 deletions automated/linux/torizon/integration-tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-only
# Copyright (C) 2024 Linaro Ltd.
. ../../lib/sh-test-lib

# source the secrets file to get the gitlab_token env var
. ../../../../../../secrets > /dev/null 2>&1

# install dependencies
install_deps "git curl python3-pip wget" "$SKIP_INSTALL"

# install spire package
wget https://github.com/Linaro/SPIRE-CLI-S-/releases/download/0.2.0-alpha%2B006/staging-spire_0.2.0-alpha+006_linux_amd64.deb
dpkg -i staging-spire_0.2.0-alpha+006_linux_amd64.deb

# clone baklava-integration repo and install required pip pkgs
get_test_program "https://gitlab-ci-token:${GITLAB_TOKEN}@gitlab.com/LinaroLtd/lava/appliance/baklava-integration.git" "baklava-integration" "main"
pip3 install -r requirements.txt

export SPIRE_PAT_TOKEN LAVA_TOKEN LAVA_PASSWORD

# run tests
robot --pythonpath . --variable remote:"$IS_REMOTE" --outputdir=.. test/
exit 0
35 changes: 35 additions & 0 deletions automated/linux/torizon/integration-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# SPDX-License-Identifier: GPL-2.0-only
# Copyright (C) 2024 Linaro Ltd.
metadata:
name: integration-tests
format: "Lava-Test Test Definition 1.0"
description: "Run appliance integration tests in LAVA."
maintainer:
- [email protected]
os:
- debian
- ubuntu
devices:
- qemu
scope:
- functional

params:
SKIP_INSTALL: "False"
IS_REMOTE: "False"
GITLAB_TOKEN: ""
BAKFLEET_URL: ""
LAVA_URL: ""
LAVA_USERNAME: ""
LAVA_TOKEN: ""
LAVA_PASSWORD: ""
BAKLAWEB_URL: ""
SPIRE_USER_EMAIL: ""
SPIRE_PAT_TOKEN: ""

run:
steps:
- cd ./automated/linux/torizon/
- export IS_REMOTE BAKFLEET_URL BAKLAWEB_URL SPIRE_USER_EMAIL LAVA_USERNAME LAVA_URL
- ./integration-tests.sh
- ../../utils/parse-robot-framework.py -r output.xml
40 changes: 40 additions & 0 deletions automated/utils/parse-robot-framework.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/usr/bin/env python
# SPDX-License-Identifier: GPL-2.0-only
# Copyright (C) 2024 Linaro Ltd.

import argparse
import subprocess
from robot.api import ExecutionResult, ResultVisitor


def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"-r",
"--result-file",
dest="result_file",
default="./output.xml",
help="Specify robot framework XML test result file.",
)
args = parser.parse_args()
return args


def main():
result = ExecutionResult(args.result_file)

def get_all_tests(suite):
for test in suite.tests:
yield test
for sub_suite in suite.suites:
yield from get_all_tests(sub_suite)

for test in get_all_tests(result.suite):
print(
f"<LAVA_SIGNAL_TESTCASE TEST_CASE_ID={test.name.replace(' ', '')} RESULT={test.status.lower()}>"
)


if __name__ == "__main__":
args = parse_args()
main()

0 comments on commit 90ce92b

Please sign in to comment.