@@ -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
552537class 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):
735751if __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