nuttx/tools/ci/testrun/script/conftest.py
Alin Jerpelea c9eef2d697 tools: migrate to SPDX identifier
Most tools used for compliance and SBOM generation use SPDX identifiers
This change brings us a step closer to an easy SBOM generation.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2024-09-10 23:11:11 +08:00

157 lines
4.4 KiB
Python

#!/usr/bin/env python3
############################################################################
# tools/ci/testrun/script/conftest.py
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################
# encoding: utf-8
import pytest
from utils.common import connectNuttx
def pytest_addoption(parser):
parser.addoption(
"-D",
action="store",
default=None,
help="specify device, for example: /dev/ttyUSB0",
)
parser.addoption(
"-B", action="store", default="sim", help="specify board, for example: sim"
)
parser.addoption(
"-P",
action="store",
default=None,
help="specify vela path, for example: /home/root/vela",
)
parser.addoption(
"-F",
action="store",
default="/data",
help="specify filesystem, for example: /data or /tmp",
)
parser.addoption(
"-L",
action="store",
default=None,
help="specify log path, for example: /home/root/vela/logs",
)
parser.addoption("-O", action="store", default=None, help="specify ota version")
parser.addoption(
"-S", action="store_true", default=False, help="enable sudo as run sim"
)
parser.addoption(
"-C", action="store_true", default=False, help="enable pre-checkin run"
)
parser.addoption(
"-U",
action="store",
default=None,
help="specify core: ap, audio, cp, sensor, tee",
)
parser.addoption(
"-M",
action="store",
default="minicom",
help="serial open method:serial or minicom",
)
parser.addoption(
"-R",
action="store",
default="sim",
help="specify the target type: target|qemu|sim|module, default is sim",
)
@pytest.fixture(scope="session")
def get_option(pytestconfig):
dev = pytestconfig.getoption("-D")
board = pytestconfig.getoption("-B")
vela_path = pytestconfig.getoption("-P")
fs = pytestconfig.getoption("-F")
log_path = pytestconfig.getoption("-L")
ota_version = pytestconfig.getoption("-O")
sudo = pytestconfig.getoption("-S")
ci = pytestconfig.getoption("-C")
core = pytestconfig.getoption("-U")
method = pytestconfig.getoption("-M")
target = pytestconfig.getoption("-R")
yield dev, board, vela_path, fs, log_path, ota_version, core, sudo, ci, method, target
@pytest.fixture(scope="session", name="p")
def connect_nuttx_session(get_option):
(
dev,
board,
vela_path,
fs,
log_path,
ota_version,
core,
sudo,
ci,
method,
target,
) = get_option
print(get_option)
p = connectNuttx(
board, vela_path, dev, log_path, fs, ota_version, core, sudo, ci, method, target
)
p.setup()
yield p
p.cleanup()
@pytest.fixture(scope="function", autouse=True)
def do_free_ps(request, p):
if "disable_autouse" in request.keywords:
yield
else:
yield
p.sendCommand("free", "total", flag=">")
p.sendCommand("ps", "PID", flag=">")
p.sendCommand("ls %s" % p.fs, flag=">")
@pytest.fixture(scope="function", name="pp")
def connect_nuttx_function(get_option):
(
dev,
board,
vela_path,
fs,
log_path,
ota_version,
core,
sudo,
ci,
method,
target,
) = get_option
print(get_option)
p = connectNuttx(
board, vela_path, dev, log_path, fs, ota_version, core, sudo, ci, method, target
)
p.setup()
yield p
# p.cleanup()