incubator-nuttx/tools/ci/testrun/script/conftest.py

136 lines
3.4 KiB
Python

#!/usr/bin/python3
# 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()