Commit c847ac78 authored by Robert Schmidt's avatar Robert Schmidt

Merge remote-tracking branch 'origin/ci-cls-physim-cleanup' into integration_2024_w45 (!3074)

CI: Cleanup of cls_physim.py

- Remove unused code and file
- Rework functions for CUDA and T2 log analysis
- Check if test was successful for nr_ulsim and nr_dlsim in
  RAN-gNB-N300-Timing-Phytest-LDPC pipeline
parents 085d4830 9e81040a
...@@ -41,7 +41,7 @@ import constants as CONST ...@@ -41,7 +41,7 @@ import constants as CONST
#----------------------------------------------------------- #-----------------------------------------------------------
def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUSTER): def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,CONTAINERS,HELP,SCA,PHYSIM,CLUSTER):
py_param_file_present = False py_param_file_present = False
...@@ -78,7 +78,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST ...@@ -78,7 +78,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
CiTestObj.ranRepository = matchReg.group(1) CiTestObj.ranRepository = matchReg.group(1)
RAN.ranRepository=matchReg.group(1) RAN.ranRepository=matchReg.group(1)
HTML.ranRepository=matchReg.group(1) HTML.ranRepository=matchReg.group(1)
ldpc.ranRepository=matchReg.group(1)
CONTAINERS.ranRepository=matchReg.group(1) CONTAINERS.ranRepository=matchReg.group(1)
SCA.ranRepository=matchReg.group(1) SCA.ranRepository=matchReg.group(1)
PHYSIM.ranRepository=matchReg.group(1) PHYSIM.ranRepository=matchReg.group(1)
...@@ -89,7 +88,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST ...@@ -89,7 +88,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
else: else:
matchReg = re.match('^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE) matchReg = re.match('^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE)
doMerge = matchReg.group(1) doMerge = matchReg.group(1)
ldpc.ranAllowMerge=matchReg.group(1)
if ((doMerge == 'true') or (doMerge == 'True')): if ((doMerge == 'true') or (doMerge == 'True')):
CiTestObj.ranAllowMerge = True CiTestObj.ranAllowMerge = True
RAN.ranAllowMerge=True RAN.ranAllowMerge=True
...@@ -106,7 +104,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST ...@@ -106,7 +104,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
CiTestObj.ranBranch = matchReg.group(1) CiTestObj.ranBranch = matchReg.group(1)
RAN.ranBranch=matchReg.group(1) RAN.ranBranch=matchReg.group(1)
HTML.ranBranch=matchReg.group(1) HTML.ranBranch=matchReg.group(1)
ldpc.ranBranch=matchReg.group(1)
CONTAINERS.ranBranch=matchReg.group(1) CONTAINERS.ranBranch=matchReg.group(1)
SCA.ranBranch=matchReg.group(1) SCA.ranBranch=matchReg.group(1)
PHYSIM.ranBranch=matchReg.group(1) PHYSIM.ranBranch=matchReg.group(1)
...@@ -119,7 +116,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST ...@@ -119,7 +116,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
CiTestObj.ranCommitID = matchReg.group(1) CiTestObj.ranCommitID = matchReg.group(1)
RAN.ranCommitID=matchReg.group(1) RAN.ranCommitID=matchReg.group(1)
HTML.ranCommitID=matchReg.group(1) HTML.ranCommitID=matchReg.group(1)
ldpc.ranCommitID=matchReg.group(1)
CONTAINERS.ranCommitID=matchReg.group(1) CONTAINERS.ranCommitID=matchReg.group(1)
SCA.ranCommitID=matchReg.group(1) SCA.ranCommitID=matchReg.group(1)
PHYSIM.ranCommitID=matchReg.group(1) PHYSIM.ranCommitID=matchReg.group(1)
...@@ -132,7 +128,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST ...@@ -132,7 +128,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
CiTestObj.ranTargetBranch = matchReg.group(1) CiTestObj.ranTargetBranch = matchReg.group(1)
RAN.ranTargetBranch=matchReg.group(1) RAN.ranTargetBranch=matchReg.group(1)
HTML.ranTargetBranch=matchReg.group(1) HTML.ranTargetBranch=matchReg.group(1)
ldpc.ranTargetBranch=matchReg.group(1)
CONTAINERS.ranTargetBranch=matchReg.group(1) CONTAINERS.ranTargetBranch=matchReg.group(1)
SCA.ranTargetBranch=matchReg.group(1) SCA.ranTargetBranch=matchReg.group(1)
PHYSIM.ranTargetBranch=matchReg.group(1) PHYSIM.ranTargetBranch=matchReg.group(1)
...@@ -141,7 +136,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST ...@@ -141,7 +136,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
if re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE): if re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE) matchReg = re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBIPAddress=matchReg.group(1) RAN.eNBIPAddress=matchReg.group(1)
ldpc.eNBIpAddr=matchReg.group(1)
CONTAINERS.eNBIPAddress=matchReg.group(1) CONTAINERS.eNBIPAddress=matchReg.group(1)
SCA.eNBIPAddress=matchReg.group(1) SCA.eNBIPAddress=matchReg.group(1)
PHYSIM.eNBIPAddress=matchReg.group(1) PHYSIM.eNBIPAddress=matchReg.group(1)
...@@ -158,7 +152,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST ...@@ -158,7 +152,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
if re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE): if re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE) matchReg = re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBUserName=matchReg.group(1) RAN.eNBUserName=matchReg.group(1)
ldpc.eNBUserName=matchReg.group(1)
CONTAINERS.eNBUserName=matchReg.group(1) CONTAINERS.eNBUserName=matchReg.group(1)
SCA.eNBUserName=matchReg.group(1) SCA.eNBUserName=matchReg.group(1)
PHYSIM.eNBUserName=matchReg.group(1) PHYSIM.eNBUserName=matchReg.group(1)
...@@ -175,7 +168,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST ...@@ -175,7 +168,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
if re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE): if re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE) matchReg = re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBPassword=matchReg.group(1) RAN.eNBPassword=matchReg.group(1)
ldpc.eNBPassWord=matchReg.group(1)
CONTAINERS.eNBPassword=matchReg.group(1) CONTAINERS.eNBPassword=matchReg.group(1)
SCA.eNBPassword=matchReg.group(1) SCA.eNBPassword=matchReg.group(1)
PHYSIM.eNBPassword=matchReg.group(1) PHYSIM.eNBPassword=matchReg.group(1)
...@@ -192,7 +184,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST ...@@ -192,7 +184,6 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
if re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE): if re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE) matchReg = re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE)
RAN.eNBSourceCodePath=matchReg.group(1) RAN.eNBSourceCodePath=matchReg.group(1)
ldpc.eNBSourceCodePath=matchReg.group(1)
CONTAINERS.eNBSourceCodePath=matchReg.group(1) CONTAINERS.eNBSourceCodePath=matchReg.group(1)
SCA.eNBSourceCodePath=matchReg.group(1) SCA.eNBSourceCodePath=matchReg.group(1)
PHYSIM.eNBSourceCodePath=matchReg.group(1) PHYSIM.eNBSourceCodePath=matchReg.group(1)
......
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
# *
# * 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.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
import logging
import re
# Define the mapping of physim_test values to search patterns
PHYSIM_PATTERN_MAPPING = {
'nr_ulsim': [
r'(Total PHY proc rx)\s+(\d+\.\d+)\s+us', # Pattern for RX PHY processing time
r'(ULSCH total decoding time)\s+(\d+\.\d+)\s+us', # Pattern for ULSCH decoding time
],
'nr_dlsim': [
r'(PHY proc tx)\s+(\d+\.\d+)\s+us', # Pattern for TX PHY processing time
r'(DLSCH encoding time)\s+(\d+\.\d+)\s+us', # Pattern for DLSCH encoding time
],
'ldpctest': [
r'(Encoding time mean):\s+(\d+\.\d+)\s+us', # Pattern for encoding time mean
r'(Decoding time mean):\s+(\d+\.\d+)\s+us', # Pattern for decoding time mean
],
}
# Define test conditions based on the simulation type
PHYSIM_TEST_CONDITION = {
'nr_ulsim': 'test OK', # For nr_ulsim, check if 'test OK' is present
'nr_dlsim': 'test OK', # For nr_dlsim, check if 'test OK' is present
'ldpctest': None, # No condition for ldpctest, just process the patterns
}
class Analysis():
def analyze_physim(log, physim_test, options, threshold):
search_patterns = PHYSIM_PATTERN_MAPPING.get(physim_test)
test_condition = PHYSIM_TEST_CONDITION.get(physim_test)
success = False
msg = ''
try:
with open(log, 'r') as f:
log_content = f.read()
except FileNotFoundError as e:
msg = f'{log} file not found, exception: {e}'
return False, msg
except Exception as e:
msg = f'Error while parsing log file {log}: exception: {e}'
return False, msg
if test_condition and test_condition not in log_content:
msg = f"Test did not succeed, '{test_condition}' not found in log file {log}."
return False, msg
time1_match = re.search(search_patterns[0], log_content)
time2_match = re.search(search_patterns[1], log_content)
if not(time1_match and time2_match):
msg = f"Processing time not found in log file {log}."
return False, msg
success = float(time2_match.group(2)) < float(threshold)
if success:
msg = f'{time1_match.group(1)}: {time1_match.group(2)} us\n{time2_match.group(1)}: {time2_match.group(2)} us'
else:
msg = f'{time1_match.group(1)}: {time1_match.group(2)} us\n{time2_match.group(1)}: {time2_match.group(2)} us exceeds a limit of {threshold} us'
return success,msg
...@@ -22,11 +22,15 @@ ...@@ -22,11 +22,15 @@
import logging import logging
import re import re
import os
import cls_cmd import cls_cmd
import cls_oai_html import cls_oai_html
import cls_analysis
import constants as CONST import constants as CONST
LOG_PATH_PHYSIM = 'phy_sim_logs'
class Native(): class Native():
def Build(test_case, HTML, host, directory, options): def Build(test_case, HTML, host, directory, options):
...@@ -62,3 +66,19 @@ class Native(): ...@@ -62,3 +66,19 @@ class Native():
logging.error('\u001B[1m Building OAI Failed\u001B[0m') logging.error('\u001B[1m Building OAI Failed\u001B[0m')
HTML.CreateHtmlTestRow(options, 'KO', CONST.ALL_PROCESSES_OK) HTML.CreateHtmlTestRow(options, 'KO', CONST.ALL_PROCESSES_OK)
return success return success
def Run_Physim(HTML, host, directory, options, physim_test, threshold):
logging.debug(f'Runnin {physim_test} on server: {host}')
workSpacePath = f'{directory}/cmake_targets'
os.system(f'mkdir -p ./{LOG_PATH_PHYSIM}')
runLogFile=f'physim_{HTML.testCase_id}.log'
with cls_cmd.getConnection(host) as cmd:
cmd.run(f'sudo {workSpacePath}/ran_build/build/{physim_test} {options} >> {workSpacePath}/{runLogFile}')
cmd.copyin(src=f'{workSpacePath}/{runLogFile}', tgt=f'{LOG_PATH_PHYSIM}/{runLogFile}')
success, msg = cls_analysis.Analysis.analyze_physim(f'{LOG_PATH_PHYSIM}/{runLogFile}', physim_test, options, threshold)
if success:
HTML.CreateHtmlTestRowQueue(options, 'OK', [msg])
else:
logging.error(msg)
HTML.CreateHtmlTestRowQueue(options, 'KO', [msg])
return success
This diff is collapsed.
...@@ -39,7 +39,6 @@ import constants as CONST ...@@ -39,7 +39,6 @@ import constants as CONST
import cls_oaicitest #main class for OAI CI test framework import cls_oaicitest #main class for OAI CI test framework
import cls_physim #class PhySim for physical simulators build and test
import cls_containerize #class Containerize for all container-based operations on RAN/UE objects import cls_containerize #class Containerize for all container-based operations on RAN/UE objects
import cls_static_code_analysis #class for static code analysis import cls_static_code_analysis #class for static code analysis
import cls_physim1 #class PhySim for physical simulators deploy and run import cls_physim1 #class PhySim for physical simulators deploy and run
...@@ -86,7 +85,6 @@ def CheckClassValidity(xml_class_list,action,id): ...@@ -86,7 +85,6 @@ def CheckClassValidity(xml_class_list,action,id):
resp=True resp=True
return resp return resp
#assigning parameters to object instance attributes (even if the attributes do not exist !!) #assigning parameters to object instance attributes (even if the attributes do not exist !!)
def AssignParams(params_dict): def AssignParams(params_dict):
...@@ -94,9 +92,6 @@ def AssignParams(params_dict): ...@@ -94,9 +92,6 @@ def AssignParams(params_dict):
setattr(CiTestObj, key, value) setattr(CiTestObj, key, value)
setattr(RAN, key, value) setattr(RAN, key, value)
setattr(HTML, key, value) setattr(HTML, key, value)
setattr(ldpc, key, value)
def ExecuteActionWithParam(action): def ExecuteActionWithParam(action):
global EPC global EPC
...@@ -106,7 +101,6 @@ def ExecuteActionWithParam(action): ...@@ -106,7 +101,6 @@ def ExecuteActionWithParam(action):
global SCA global SCA
global PHYSIM global PHYSIM
global CLUSTER global CLUSTER
global ldpc
if action == 'Build_eNB' or action == 'Build_Image' or action == 'Build_Proxy' or action == "Build_Cluster_Image" or action == "Build_Run_Tests": if action == 'Build_eNB' or action == 'Build_Image' or action == 'Build_Proxy' or action == "Build_Cluster_Image" or action == "Build_Run_Tests":
RAN.Build_eNB_args=test.findtext('Build_eNB_args') RAN.Build_eNB_args=test.findtext('Build_eNB_args')
CONTAINERS.imageKind=test.findtext('kind') CONTAINERS.imageKind=test.findtext('kind')
...@@ -287,18 +281,6 @@ def ExecuteActionWithParam(action): ...@@ -287,18 +281,6 @@ def ExecuteActionWithParam(action):
st = test.findtext('idle_sleep_time_in_sec') or "5" st = test.findtext('idle_sleep_time_in_sec') or "5"
success = cls_oaicitest.IdleSleep(HTML, int(st)) success = cls_oaicitest.IdleSleep(HTML, int(st))
elif action == 'Build_PhySim':
ldpc.buildargs = test.findtext('physim_build_args')
forced_workspace_cleanup = test.findtext('forced_workspace_cleanup')
if (forced_workspace_cleanup is None):
ldpc.forced_workspace_cleanup=False
else:
if re.match('true', forced_workspace_cleanup, re.IGNORECASE):
ldpc.forced_workspace_cleanup=True
else:
ldpc.forced_workspace_cleanup=False
success = ldpc.Build_PhySim(HTML,CONST)
elif action == 'Deploy_Run_PhySim': elif action == 'Deploy_Run_PhySim':
success = PHYSIM.Deploy_PhySim(HTML) success = PHYSIM.Deploy_PhySim(HTML)
...@@ -375,16 +357,11 @@ def ExecuteActionWithParam(action): ...@@ -375,16 +357,11 @@ def ExecuteActionWithParam(action):
elif action == 'Create_Workspace': elif action == 'Create_Workspace':
success = CONTAINERS.Create_Workspace(HTML) success = CONTAINERS.Create_Workspace(HTML)
elif action == 'Run_CUDATest' or action == 'Run_NRulsimTest' or action == 'Run_T2Test': elif action == 'Run_Physim':
ldpc.runargs = test.findtext('physim_run_args') physim_options = test.findtext('physim_run_args')
ldpc.runsim = test.findtext('physim_run') physim_test = test.findtext('physim_test')
ldpc.timethrs = test.findtext('physim_time_threshold') physim_threshold = test.findtext('physim_time_threshold') or 'inf'
if action == 'Run_CUDATest': success = cls_native.Native.Run_Physim(HTML, RAN.eNBIPAddress, RAN.eNBSourceCodePath, physim_options, physim_test, physim_threshold)
success = ldpc.Run_CUDATest(HTML,CONST,id)
elif action == 'Run_NRulsimTest':
success = ldpc.Run_NRulsimTest(HTML,CONST,id)
elif action == 'Run_T2Test':
success = ldpc.Run_T2Test(HTML,CONST,id)
elif action == 'LicenceAndFormattingCheck': elif action == 'LicenceAndFormattingCheck':
success = SCA.LicenceAndFormattingCheck(HTML) success = SCA.LicenceAndFormattingCheck(HTML)
...@@ -490,15 +467,12 @@ SCA = cls_static_code_analysis.StaticCodeAnalysis() ...@@ -490,15 +467,12 @@ SCA = cls_static_code_analysis.StaticCodeAnalysis()
PHYSIM = cls_physim1.PhySim() PHYSIM = cls_physim1.PhySim()
CLUSTER = cls_cluster.Cluster() CLUSTER = cls_cluster.Cluster()
ldpc=cls_physim.PhySim() #create an instance for LDPC test using GPU or CPU build
#----------------------------------------------------------- #-----------------------------------------------------------
# Parsing Command Line Arguments # Parsing Command Line Arguments
#----------------------------------------------------------- #-----------------------------------------------------------
import args_parse import args_parse
py_param_file_present, py_params, mode = args_parse.ArgsParse(sys.argv,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUSTER) py_param_file_present, py_params, mode = args_parse.ArgsParse(sys.argv,CiTestObj,RAN,HTML,EPC,CONTAINERS,HELP,SCA,PHYSIM,CLUSTER)
......
- Build_Proxy - Build_Proxy
- Build_Cluster_Image - Build_Cluster_Image
- Pull_Cluster_Image - Pull_Cluster_Image
- Build_PhySim - Run_Physim
- Run_CUDATest
- Run_T2Test
- Run_NRulsimTest
- Build_eNB - Build_eNB
- Initialize_eNB - Initialize_eNB
- Terminate_eNB - Terminate_eNB
......
...@@ -29,122 +29,162 @@ ...@@ -29,122 +29,162 @@
<TestCaseExclusionList></TestCaseExclusionList> <TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000002"> <testCase id="000002">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 3872 -s10 -n100</physim_run_args> <physim_run_args>-l 3872 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000003"> <testCase id="000003">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 3872 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 3872 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
<testCase id="000004"> <testCase id="000004">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 4224 -s10 -n100</physim_run_args> <physim_run_args>-l 4224 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000005"> <testCase id="000005">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 4224 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 4224 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
<testCase id="000006"> <testCase id="000006">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 4576 -s10 -n100</physim_run_args> <physim_run_args>-l 4576 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000007"> <testCase id="000007">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 4576 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 4576 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
<testCase id="000008"> <testCase id="000008">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 4928 -s10 -n100</physim_run_args> <physim_run_args>-l 4928 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000009"> <testCase id="000009">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 4928 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 4928 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
<testCase id="000010"> <testCase id="000010">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 5280 -s10 -n100</physim_run_args> <physim_run_args>-l 5280 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000011"> <testCase id="000011">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 5280 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 5280 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
<testCase id="000012"> <testCase id="000012">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 5632 -s10 -n100</physim_run_args> <physim_run_args>-l 5632 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000013"> <testCase id="000013">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 5632 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 5632 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
<testCase id="000014"> <testCase id="000014">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 6336 -s10 -n100</physim_run_args> <physim_run_args>-l 6336 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000015"> <testCase id="000015">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 6336 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 6336 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
<testCase id="000016"> <testCase id="000016">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 7040 -s10 -n100</physim_run_args> <physim_run_args>-l 7040 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000017"> <testCase id="000017">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 7040 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 7040 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
<testCase id="000018"> <testCase id="000018">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 7744 -s10 -n100</physim_run_args> <physim_run_args>-l 7744 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000019"> <testCase id="000019">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 7744 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 7744 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
<testCase id="000020"> <testCase id="000020">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with CPU</desc> <desc>Run LDPC Test with CPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 8448 -s10 -n100</physim_run_args> <physim_run_args>-l 8448 -s10 -n100</physim_run_args>
</testCase> </testCase>
<testCase id="000021"> <testCase id="000021">
<class>Run_CUDATest</class> <class>Run_Physim</class>
<desc>Run LDPC Test with GPU</desc> <desc>Run LDPC Test with GPU</desc>
<always_exec>true</always_exec>
<physim_test>ldpctest</physim_test>
<physim_run_args>-l 8448 -s10 -n100 -G 1</physim_run_args> <physim_run_args>-l 8448 -s10 -n100 -G 1</physim_run_args>
</testCase> </testCase>
......
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
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.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>build-offload</htmlTabRef>
<htmlTabName>Build physical simulators</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList>000001</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="000001">
<class>Build_PhySim</class>
<desc>Build physical simulators</desc>
<physim_build_args>--phy_simulators --ninja --noavx512</physim_build_args>
<forced_workspace_cleanup>FALSE</forced_workspace_cleanup>
</testCase>
</testCaseList>
...@@ -940,6 +940,7 @@ int main(int argc, char **argv) ...@@ -940,6 +940,7 @@ int main(int argc, char **argv)
for (SNR = snr0; SNR < snr1; SNR += .2) { for (SNR = snr0; SNR < snr1; SNR += .2) {
varArray_t *table_tx=initVarArray(1000,sizeof(double)); varArray_t *table_tx=initVarArray(1000,sizeof(double));
reset_meas(&gNB->phy_proc_tx);
reset_meas(&gNB->dlsch_scrambling_stats); reset_meas(&gNB->dlsch_scrambling_stats);
reset_meas(&gNB->dlsch_interleaving_stats); reset_meas(&gNB->dlsch_interleaving_stats);
reset_meas(&gNB->dlsch_rate_matching_stats); reset_meas(&gNB->dlsch_rate_matching_stats);
...@@ -1033,11 +1034,13 @@ int main(int argc, char **argv) ...@@ -1033,11 +1034,13 @@ int main(int argc, char **argv)
msgDataTx->ssb[0].ssb_pdu.ssb_pdu_rel15.bchPayload=0x001234; msgDataTx->ssb[0].ssb_pdu.ssb_pdu_rel15.bchPayload=0x001234;
msgDataTx->ssb[0].ssb_pdu.ssb_pdu_rel15.SsbBlockIndex = 0; msgDataTx->ssb[0].ssb_pdu.ssb_pdu_rel15.SsbBlockIndex = 0;
msgDataTx->gNB = gNB; msgDataTx->gNB = gNB;
if (run_initial_sync) if (run_initial_sync) {
nr_common_signal_procedures(gNB,frame,slot,msgDataTx->ssb[0].ssb_pdu); nr_common_signal_procedures(gNB,frame,slot,msgDataTx->ssb[0].ssb_pdu);
else } else {
start_meas(&gNB->phy_proc_tx);
phy_procedures_gNB_TX(msgDataTx,frame,slot,1); phy_procedures_gNB_TX(msgDataTx,frame,slot,1);
stop_meas(&gNB->phy_proc_tx);
}
int txdataF_offset = slot * frame_parms->samples_per_slot_wCP; int txdataF_offset = slot * frame_parms->samples_per_slot_wCP;
if (n_trials==1) { if (n_trials==1) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment