Skip to content

Commit 9d98a2b

Browse files
committed
tools/psoc6/run_test_plan.py: WIP. FIXUP.
Signed-off-by: jaenrig-ifx <enriquezgarcia.external@infineon.com>
1 parent d3de6b5 commit 9d98a2b

1 file changed

Lines changed: 41 additions & 20 deletions

File tree

tools/psoc6/run_test_plan.py

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -377,11 +377,6 @@ def update_upon_fail(cls, test_name: str, max_retries: int) -> None:
377377
# else decrease a retry
378378
logging.debug("Decreasing retry for test: {}".format(test_name))
379379
cls.test_retry_list[test_retry_index].retries -= 1
380-
# if cls.test_retry_list[test_retry_index].retries == 0:
381-
# # Remove from the list
382-
# logging.debug("Removing test from retry list: {}".format(test_name))
383-
# test_retry_obj = cls.test_retry_list[test_retry_index]
384-
# cls.test_retry_list.remove(test_retry_obj)
385380

386381
@classmethod
387382
def update_upon_success(cls, test_name: str) -> None:
@@ -402,17 +397,6 @@ def get_retry_test_list(cls, test_list: list[TestRunner]) -> list[TestRunner]:
402397
retry_test_list.append(test)
403398
return retry_test_list
404399

405-
# @classmethod
406-
# def get_retry_expired_test_list(cls, test_list: list[TestRunner]) -> list[TestRunner]:
407-
# retry_test_name_list = cls.get_test_name_retry_list()
408-
# logging.debug(f"Getting fail test list for names: {retry_test_name_list}")
409-
# fail_test_list = []
410-
# for test in test_list:
411-
# for retry in cls.
412-
# if test.name in retry_test_name_list:
413-
# fail_test_list.append(test)
414-
# return fail_test_list
415-
416400
"""
417401
Private methods
418402
"""
@@ -456,7 +440,8 @@ def test_plan_info(self, board, test_plan_file, hil_devs_file):
456440
)
457441
print(f"{TestPlanLogger.blue_on}> board : {board}{TestPlanLogger.color_off}")
458442
print(f"test plan file : {os.path.relpath(test_plan_file)}")
459-
print(f"hil devs file : {os.path.relpath(hil_devs_file)}")
443+
if hil_devs_file:
444+
print(f"hil devs file : {os.path.relpath(hil_devs_file)}")
460445
print(
461446
f"{TestPlanLogger.blue_on}"
462447
+ "#" * TestPlanLogger.decorator_line_len
@@ -550,12 +535,19 @@ def test_summary_info(self, pass_test_name_list, fail_test_name_list, skip_test_
550535

551536

552537
class TestPlanRunner:
553-
def __init__(self, test_plan_file, hil_devs_file, max_retries=0):
538+
def __init__(
539+
self, test_plan_file, hil_devs_file, max_retries=0, dut_port=None, stub_port=None
540+
):
554541
self.test_plan_file = test_plan_file
555542
self.hil_devs_file = hil_devs_file
556543
self.max_retries = max_retries
557544
self.logger = TestPlanLogger()
558545

546+
self.dut_port = dut_port
547+
self.stub_port = stub_port
548+
self.direct_mode = True if (self.dut_port is not None) else False
549+
print("Direct mode:", self.direct_mode)
550+
559551
def run(self, board, test_name_list=[]):
560552
test_list = self.get_test_list(test_name_list)
561553

@@ -624,6 +616,11 @@ def get_ports_for_role(test, board, device_role):
624616
dut_port = None
625617
stub_port = None
626618

619+
if self.direct_mode:
620+
dut_port = self.dut_port
621+
stub_port = self.stub_port
622+
return dut_port, stub_port
623+
627624
dut_port_list = get_ports_for_role(test, board, TestRunner.DeviceRole.DUT)
628625

629626
if not dut_port_list:
@@ -715,13 +712,32 @@ def parse(self):
715712
return args
716713

717714
def set_validate_args(self, args):
715+
if args.hil_devs:
716+
args.hil_devs = os.path.abspath(args.hil_devs)
717+
if args.board is None:
718+
self.tests_parser.error("--board is required when --hil-devs is provided")
719+
720+
if args.dut_port or args.stub_port:
721+
self.tests_parser.error(
722+
"--dut-port and --stub-port are not supported when --hil-devs is provided"
723+
)
724+
else:
725+
if args.board is not None:
726+
self.tests_parser.error("--hil-devs is required when --board is provided")
727+
728+
# If the ports are not provide, the default values are set.
729+
if args.dut_port is None:
730+
args.dut_port = "/dev/ttyACM0"
731+
732+
if args.stub_port is None:
733+
args.stub_port = "/dev/ttyACM1"
734+
718735
if args.test_plan is None:
719736
args.test_plan = os.path.abspath(
720737
os.path.join(os.path.abspath(os.path.dirname(__file__)), "test-plan.yml")
721738
)
722739
else:
723740
args.test_plan = os.path.abspath(args.test_plan)
724-
args.hil_devs = os.path.abspath(args.hil_devs)
725741

726742
if args.mpy_root_dir is None:
727743
run_test_plan_script_dir = os.path.abspath(os.path.dirname(__file__))
@@ -735,7 +751,12 @@ def set_validate_args(self, args):
735751
if __name__ == "__main__":
736752
test_parser = TestPlanParser()
737753
parser_args = test_parser.parse()
754+
print(parser_args)
738755
test_plan_runner = TestPlanRunner(
739-
parser_args.test_plan, parser_args.hil_devs, parser_args.max_retries
756+
parser_args.test_plan,
757+
parser_args.hil_devs,
758+
parser_args.max_retries,
759+
parser_args.dut_port,
760+
parser_args.stub_port,
740761
)
741762
test_plan_runner.run(parser_args.board, parser_args.test_suite)

0 commit comments

Comments
 (0)