From daabc352f851ee59c93304bfa69c1b6599d0cb42 Mon Sep 17 00:00:00 2001 From: Chuck SmileyRekiere Date: Tue, 5 Oct 2021 15:25:42 -0600 Subject: [PATCH] lf_check.py : updating code to work with wireless network configuration upto endless number of network configurations . Signed-off-by: Chuck SmileyRekiere --- py-scripts/tools/ct_001_AX88U_dut.json | 6 ++- py-scripts/tools/ct_004_AX88U_dut.json | 9 +++- py-scripts/tools/ct_us_001_tests.json | 40 +++++++++--------- py-scripts/tools/lf_check.py | 57 +++++++++++++++++++++----- 4 files changed, 79 insertions(+), 33 deletions(-) diff --git a/py-scripts/tools/ct_001_AX88U_dut.json b/py-scripts/tools/ct_001_AX88U_dut.json index 539f3760..69bf4a2d 100644 --- a/py-scripts/tools/ct_001_AX88U_dut.json +++ b/py-scripts/tools/ct_001_AX88U_dut.json @@ -20,7 +20,11 @@ "SECURITY_5G_USED": "wpa2", "SSID_2G_USED": "asus11ax-2", "SSID_2G_PW_USED": "hello123", - "SECURITY_2G_USED": "wpa2" + "SECURITY_2G_USED": "wpa2", + "wireless_network_dict":{ + "ssid_idx=0":{"ssid_idx":"0","SSID_USED":"asus11ax-2","SSID_PW_USED":"hello123","BSSID":"3c:7c:3f:55:4d:60","SECURITY_USED":"wpa2"}, + "ssid_idx=1":{"ssid_idx":"1","SSID_USED":"asus11ax-5","SSID_PW_USED":"hello123","BSSID":"3c:7c:3f:55:4d:64","SECURITY_USED":"wpa2"} + } } } \ No newline at end of file diff --git a/py-scripts/tools/ct_004_AX88U_dut.json b/py-scripts/tools/ct_004_AX88U_dut.json index 2ec3c1ff..e07c7f4e 100644 --- a/py-scripts/tools/ct_004_AX88U_dut.json +++ b/py-scripts/tools/ct_004_AX88U_dut.json @@ -20,7 +20,14 @@ "SECURITY_5G_USED": "wpa2", "SSID_2G_USED": "asus11ax-2", "SSID_2G_PW_USED": "hello123", - "SECURITY_2G_USED": "wpa2" + "SECURITY_2G_USED": "wpa2", + "wireless_network":{ + "ssid_idx=0":{"ssid_idx":"0","SSID_USED":"aux11ax-2","SSID_PW_USED":"hello123","BSSID_USED":"d4:5d:64:a0:7f:78","SECURITY_USED":"wpa2"}, + "ssid_idx=1":{"ssid_idx":"1","SSID_USED":"aux11ax-5","SSID_PW_USED":"hello123","BSSID_USED":"d4:5d:64:a0:7f:7c","SECURITY_USED":"wpa2"} + } } } + + + \ No newline at end of file diff --git a/py-scripts/tools/ct_us_001_tests.json b/py-scripts/tools/ct_us_001_tests.json index 616d3e9d..a9e369d3 100644 --- a/py-scripts/tools/ct_us_001_tests.json +++ b/py-scripts/tools/ct_us_001_tests.json @@ -56,8 +56,8 @@ "args":"", "args_list":[ " --lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ] }, @@ -95,8 +95,8 @@ "args":"", "args_list":[ " --lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_2G_USED security=SECURITY_2G_USED password=SSID_2G_PW_USED bssid=DUT_BSSID_2G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ] }, @@ -157,8 +157,8 @@ "args":"", "args_list":[ " --lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_2G_USED security=SECURITY_2G_USED password=SSID_2G_PW_USED bssid=DUT_BSSID_2G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ] }, @@ -196,8 +196,8 @@ "args":"", "args_list":[ " --lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_2G_USED security=SECURITY_2G_USED password=SSID_2G_PW_USED bssid=DUT_BSSID_2G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ] }, @@ -238,8 +238,8 @@ "args":"", "args_list":[ "--lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_2G_USED security=SECURITY_2G_USED password=SSID_2G_PW_USED bssid=DUT_BSSID_2G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ] }, @@ -276,8 +276,8 @@ "args":"", "args_list":[ "--lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_2G_USED security=SECURITY_2G_USED password=SSID_2G_PW_USED bssid=DUT_BSSID_2G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ] }, @@ -317,8 +317,8 @@ "args":"", "args_list":[ " --lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_2G_USED security=SECURITY_2G_USED password=SSID_2G_PW_USED bssid=DUT_BSSID_2G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ] }, @@ -356,8 +356,8 @@ "args":"", "args_list":[ " --lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_2G_USED security=SECURITY_2G_USED password=SSID_2G_PW_USED bssid=DUT_BSSID_2G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ] }, @@ -397,8 +397,8 @@ "args":"", "args_list":[ " --lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_2G_USED security=SECURITY_2G_USED password=SSID_2G_PW_USED bssid=DUT_BSSID_2G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ]}, "CT-US-001_create_chamberview_ap":{ @@ -459,8 +459,8 @@ "args":"", "args_list":[ " --lfmgr LF_MGR_IP --port LF_MGR_PORT --dut_name DUT_NAME", - " --ssid 'ssid_idx=0 ssid=SSID_2G_USED security=SECURITY_2G_USED password=SSID_2G_PW_USED bssid=DUT_BSSID_2G'", - " --ssid 'ssid_idx=1 ssid=SSID_5G_USED security=SECURITY_5G_USED password=SSID_5G_PW_USED bssid=DUT_BSSID_5G'", + " --ssid 'ssid_idx=0 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", + " --ssid 'ssid_idx=1 ssid=SSID_USED security=SECURITY_USED password=SSID_PW_USED bssid=BSSID'", " --sw_version DUT_SW --hw_version DUT_HW --serial_num DUT_SERIAL --model_num DUT_NAME" ]}, "CT-US-001_create_chamberview_ap":{ diff --git a/py-scripts/tools/lf_check.py b/py-scripts/tools/lf_check.py index cbbc4421..47a0ba5d 100755 --- a/py-scripts/tools/lf_check.py +++ b/py-scripts/tools/lf_check.py @@ -141,7 +141,6 @@ class lf_check(): self.production_run = _production self.report_path = _report_path self.log_path = _log_path - self.ssid_dict = {} self.radio_dict = {} self.test_dict = {} path_parent = os.path.dirname(os.getcwd()) @@ -199,6 +198,9 @@ class lf_check(): self.dut_sw = "DUT_SW_NA" self.dut_model = "DUT_MODEL_NA" self.dut_serial = "DUT_SERIAL_NA" + + self.dut_wireless_network_dict = {} + self.dut_bssid_2g = "BSSID_2G_NA" # "3c:7c:3f:55:4d:64" - this is the mac for the 2.4G radio this may be seen with a scan self.dut_bssid_5g = "BSSID_5G_NA" # "3c:7c:3f:55:4d:64" - this is the mac for the 5G radio this may be seen with a scan self.dut_bssid_6g = "BSSID_6G_NA" # "3c:7c:3f:55:4d:64" - this is the mac for the 6G radio this may be seen with a scan @@ -493,7 +495,7 @@ NOTE: Diagrams are links in dashboard""".format(ip_qa=ip,qa_url=qa_url) self.read_dut_parameters() else: self.logger.info("EXITING test_dut not in json {}".format(self.json_dut)) - self.logger.info("EXITING ERROR test_dut not in dug json {}") + self.logger.info("EXITING ERROR test_dut not in dut json {}") exit(1) # Top Level for reading the tests to run @@ -632,10 +634,12 @@ NOTE: Diagrams are links in dashboard""".format(ip_qa=ip,qa_url=qa_url) else: self.logger.info("DUT_SERIAL not in test_dut json") - if "DUT_BSSID_2G" in self.json_dut["test_dut"]: - self.dut_bssid_2g = self.json_dut["test_dut"]["DUT_BSSID_2G"] + if "wireless_network_dict" in self.json_dut["test_dut"]: + self.wireless_network_dict = self.json_dut["test_dut"]["wireless_network_dict"] + self.logger.info("self.wireless_network_dict {}".format(self.wireless_network_dict)) else: - self.logger.info("DUT_BSSID_2G not in test_dut json") + self.logger.info("wireless_network_ict not in test_dut json") + exit(1) if "DUT_BSSID_5G" in self.json_dut["test_dut"]: self.dut_bssid_5g = self.json_dut["test_dut"]["DUT_BSSID_5G"] @@ -761,7 +765,7 @@ NOTE: Diagrams are links in dashboard""".format(ip_qa=ip,qa_url=qa_url) def run_script_test(self): self.start_html_results() self.start_csv_results() - print(self.test_dict) + #print(self.test_dict) # loop through radios (For future functionality based on radio) if self.radio_dict: @@ -788,14 +792,37 @@ NOTE: Diagrams are links in dashboard""".format(ip_qa=ip,qa_url=qa_url) for iteration in range(self.test_iterations): iteration += 1 - # if args key has a value of an empty string then need to manipulate the args_list to args - # list does not have replace only stings do to args_list will be joined and converted to a string and placed - # in args. Then the replace below will work. + # The network arguments need to be changed when in a list + for index, args_list_element in enumerate(self.test_dict[test]['args_list']): + if 'ssid_idx=' in args_list_element: + #print("args_list_element {}".format(args_list_element)) + # get ssid_idx used in the test as an index for the dictionary + ssid_idx_number = args_list_element.split('ssid_idx=')[-1].split()[0] + print("ssid_idx_number: {}".format(ssid_idx_number)) + idx = "ssid_idx={}".format(ssid_idx_number) # index into the DUT network index + print("idx: {}".format(idx)) + if 'SSID_USED' in args_list_element: + #args_list_element = args_list_element.replace('SSID_USED', self.wireless_network_dict[idx]['SSID_USED']) + self.test_dict[test]['args_list'][index] = self.test_dict[test]['args_list'][index].replace('SSID_USED', self.wireless_network_dict[idx]['SSID_USED']) + if 'SECURITY_USED' in args_list_element: + #args_list_element = args_list_element.replace('SECURITY_USED', self.wireless_network_dict[idx]['SECURITY_USED']) + self.test_dict[test]['args_list'][index] = self.test_dict[test]['args_list'][index].replace('SECURITY_USED', self.wireless_network_dict[idx]['SECURITY_USED']) + if 'SSID_PW_USED' in args_list_element: + #args_list_element = args_list_element.replace('SSID_PW_USED', self.wireless_network_dict[idx]['SSID_PW_USED']) + self.test_dict[test]['args_list'][index] = self.test_dict[test]['args_list'][index].replace('SSID_PW_USED', self.wireless_network_dict[idx]['SSID_PW_USED']) + if 'BSSID' in args_list_element: + #args_list_element = args_list_element.replace('BSSID', self.wireless_network_dict[idx]['BSSID']) + self.test_dict[test]['args_list'][index] = self.test_dict[test]['args_list'][index].replace('BSSID', self.wireless_network_dict[idx]['BSSID']) + + #print("args_list_element: {}".format(args_list_element)) + #print("self.test_dict[test]['args_list']: {}".format(self.test_dict[test]['args_list'])) + + + # Walk all the args in the args list then construct the arguments if self.test_dict[test]['args'] == "": self.test_dict[test]['args'] = self.test_dict[test]['args'].replace(self.test_dict[test]['args'], ''.join(self.test_dict[test][ 'args_list'])) - if 'DATABASE_SQLITE' in self.test_dict[test]['args']: self.test_dict[test]['args'] = self.test_dict[test]['args'].replace('DATABASE_SQLITE', self.database_sqlite) if 'HTTP_TEST_IP' in self.test_dict[test]['args']: @@ -868,6 +895,14 @@ NOTE: Diagrams are links in dashboard""".format(ip_qa=ip,qa_url=qa_url) self.dut_set_name) if 'TEST_RIG' in self.test_dict[test]['args']: self.test_dict[test]['args'] = self.test_dict[test]['args'].replace('TEST_RIG', self.test_rig) + + + # END of command line arg processing + if self.test_dict[test]['args'] == "": + self.test_dict[test]['args'] = self.test_dict[test]['args'].replace(self.test_dict[test]['args'], + ''.join(self.test_dict[test][ + 'args_list'])) + # end of database configuration if 'timeout' in self.test_dict[test]: @@ -936,7 +971,7 @@ NOTE: Diagrams are links in dashboard""".format(ip_qa=ip,qa_url=qa_url) start_time = datetime.datetime.now() try: process = subprocess.Popen(command_to_run, shell=False, stdout=stdout_log, stderr=stderr_log, - universal_newlines=True) + universal_newlines=True) # if there is a better solution please propose, the TIMEOUT Result is different then FAIL try: if int(self.test_timeout != 0):