+ cmd = 'cd {0}/{1} && ./{2} cleanup 0'\
+ .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name)
+ exec_cmd(dut1_node, cmd)
+ exec_cmd(dut2_node, cmd)
+ time.sleep(5)
+
+ @staticmethod
+ def run_dmm_func_test_cases(dut1_node, dut2_node, dut1_if_name,
+ dut2_if_name, dut1_ip, dut2_ip, prefix_len):
+ """
+ Execute all the functional test cases and return result.
+
+ :param dut1_node: Node to run an app with DMM on.
+ :param dut2_node: Node to run an app with DMM on.
+ :param dut1_if_name: DUT1 to DUT2 interface name.
+ :param dut2_if_name: DUT2 to DUT1 interface name.
+ :param dut1_ip: IP address to configure on DUT1.
+ :param dut2_ip: IP address to configure on DUT2.
+ :param prefix_len: Prefix length.
+ :type dut1_node: dict
+ :type dut2_node: dict
+ :type dut1_if_name: str
+ :type dut2_if_name: str
+ :type dut1_ip: str
+ :type dut2_ip: str
+ :type prefix_len: int
+ :returns: Total testcase count, Passed testcase count.
+ :rtype: tuple(int, int)
+ """
+ passed = 0
+ total = 0
+ failed = 0
+ path = '{0}/*'.format(con.DMM_RUN_SCRIPTS)
+ files = [os.path.basename(x) for x in glob.glob(path)]
+ print "list of files : {0}".format(files)
+
+ for name in files:
+ print("file name : {}").format(name)
+ total += 1
+ SingleCliSer.setup_dmm_dut(dut1_node, dut2_node, dut1_if_name,
+ dut2_if_name, name, dut1_ip, dut2_ip,
+ prefix_len)
+ SingleCliSer.execute_test(dut1_node, dut2_node, dut1_if_name,
+ dut2_if_name, name, dut1_ip, dut2_ip)
+ result = SingleCliSer.verify_test_result(dut1_node, dut2_node,
+ '{0}'.format(name))
+ if result == "PASS":
+ passed += 1
+ elif result == "FAIL":
+ failed += 1
+
+ SingleCliSer.print_dmm_log(dut1_node, dut2_node, name)
+ SingleCliSer.cleanup_dmm_dut(dut1_node, dut2_node, name)
+ print("TOTAL :{} PASSED : {} FAILED: {}").format\
+ (total, passed, failed)
+
+ return total, passed