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