test: scan returned values in ci
This commit is contained in:
parent
7cf149ff6b
commit
a8c99adf87
|
@ -27,49 +27,56 @@ for key, value in opts:
|
||||||
self_path = os.path.dirname(os.path.realpath(__file__))
|
self_path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
if ("community" in self_path):
|
if ("community" in self_path):
|
||||||
source_path = self_path[:self_path.find("community")]
|
TD_project_path = self_path[:self_path.find("community")]
|
||||||
work_path = source_path[:source_path.find("TDinternal")]
|
work_path = TD_project_path[:TD_project_path.find("TDinternal")]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
source_path = self_path[:self_path.find("tests")]
|
TD_project_path = self_path[:self_path.find("tests")]
|
||||||
work_path = source_path[:source_path.find("TDengine")]
|
work_path = TD_project_path[:TD_project_path.find("TDengine")]
|
||||||
|
|
||||||
# Check if "community" or "tests" is in self_path
|
# Check if "community" or "tests" is in self_path
|
||||||
index_community = self_path.find("community")
|
index_community = self_path.find("community")
|
||||||
if index_community != -1:
|
if index_community != -1:
|
||||||
source_path = self_path[:index_community]
|
TD_project_path = self_path[:index_community]
|
||||||
index_TDinternal = source_path.find("TDinternal")
|
index_TDinternal = TD_project_path.find("TDinternal")
|
||||||
# Check if index_TDinternal is valid and set work_path accordingly
|
# Check if index_TDinternal is valid and set work_path accordingly
|
||||||
if index_TDinternal != -1:
|
if index_TDinternal != -1:
|
||||||
work_path = source_path[:index_TDinternal]
|
work_path = TD_project_path[:index_TDinternal]
|
||||||
else:
|
else:
|
||||||
index_tests = self_path.find("tests")
|
index_tests = self_path.find("tests")
|
||||||
if index_tests != -1:
|
if index_tests != -1:
|
||||||
source_path = self_path[:index_tests]
|
TD_project_path = self_path[:index_tests]
|
||||||
# Check if index_TDengine is valid and set work_path accordingly
|
# Check if index_TDengine is valid and set work_path accordingly
|
||||||
index_TDengine = source_path.find("TDengine")
|
index_TDengine = TD_project_path.find("TDengine")
|
||||||
if index_TDengine != -1:
|
if index_TDengine != -1:
|
||||||
work_path = source_path[:index_TDengine]
|
work_path = TD_project_path[:index_TDengine]
|
||||||
|
|
||||||
|
|
||||||
# log file path
|
# log file path
|
||||||
log_file_path = f"{source_path}/../log/{branch_name}/"
|
log_file_path = f"{work_path}/log/{branch_name}/"
|
||||||
os.makedirs(log_file_path, exist_ok=True)
|
os.makedirs(log_file_path, exist_ok=True)
|
||||||
|
|
||||||
scan_log_file = f"{log_file_path}/scan.log"
|
scan_log_file = f"{log_file_path}/scan.log"
|
||||||
logger.add(scan_log_file, rotation="10MB", retention="7 days", level="DEBUG")
|
logger.add(scan_log_file, rotation="10MB", retention="7 days", level="DEBUG")
|
||||||
print(self_path,work_path,source_path,log_file_path)
|
print(self_path,work_path,TD_project_path,log_file_path)
|
||||||
|
|
||||||
# scan result base path
|
# scan result base path
|
||||||
scan_result_base_path = f"{log_file_path}/clang_scan_result/"
|
scan_result_base_path = f"{log_file_path}/clang_scan_result/"
|
||||||
|
|
||||||
|
|
||||||
# the compile commands json file path
|
# the compile commands json file path
|
||||||
compile_commands_path = f"{source_path}/debugNoSan/compile_commands.json"
|
compile_commands_path = f"{work_path}/debugNoSan/compile_commands.json"
|
||||||
sed_command = r"sed -i 's/home/var\\lib\\jenkins\\workspace/g' compile_commands.json"
|
# compile_commands_path = f"{TD_project_path}/debug/compile_commands.json"
|
||||||
|
print(f"compile_commands_path:{compile_commands_path}")
|
||||||
|
|
||||||
|
# replace the docerk worf path with real work path in compile_commands.json
|
||||||
|
docker_work_path = "home"
|
||||||
|
replace_path= work_path[1:-1]
|
||||||
|
replace_path = replace_path.replace("/", "\/")
|
||||||
|
sed_command = f"sed -i 's/{docker_work_path}/{replace_path}/g' {compile_commands_path}"
|
||||||
|
print(sed_command)
|
||||||
result = subprocess.run(sed_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
|
result = subprocess.run(sed_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
|
||||||
logger.debug(f"STDOUT: {result.stdout} STDERR: {result.stderr}")
|
logger.debug(f"STDOUT: {result.stdout} STDERR: {result.stderr}")
|
||||||
# compile_commands_path = f"{source_path}/debug/compile_commands.json"
|
|
||||||
|
|
||||||
# the ast parser rule for c file
|
# the ast parser rule for c file
|
||||||
clang_scan_rules_path = f"{self_path}/filter_for_return_values"
|
clang_scan_rules_path = f"{self_path}/filter_for_return_values"
|
||||||
|
@ -112,16 +119,16 @@ def scan_files_path(source_file_path):
|
||||||
def input_files(change_files):
|
def input_files(change_files):
|
||||||
# scan_dir_list = ["source", "include", "docs/examples", "tests/script/api", "src/plugins"]
|
# scan_dir_list = ["source", "include", "docs/examples", "tests/script/api", "src/plugins"]
|
||||||
scan_dir_list = ["source", "include", "docs/examples", "src/plugins"]
|
scan_dir_list = ["source", "include", "docs/examples", "src/plugins"]
|
||||||
scan_skip_file_list = [f"{source_path}/TDinternal/community/tools/taosws-rs/target/release/build/openssl-sys-7811e597b848e397/out/openssl-build/install/include/openssl", "/test/", "contrib", "debug", "deps", f"{source_path}/TDinternal/community/source/libs/parser/src/sql.c", f"{source_path}/TDinternal/community/source/client/jni/windows/win32/bridge/AccessBridgeCalls.c"]
|
scan_skip_file_list = [f"{TD_project_path}/TDinternal/community/tools/taosws-rs/target/release/build/openssl-sys-7811e597b848e397/out/openssl-build/install/include/openssl", "/test/", "contrib", "debug", "deps", f"{TD_project_path}/TDinternal/community/source/libs/parser/src/sql.c", f"{TD_project_path}/TDinternal/community/source/client/jni/windows/win32/bridge/AccessBridgeCalls.c"]
|
||||||
with open(change_files, 'r') as file:
|
with open(change_files, 'r') as file:
|
||||||
for line in file:
|
for line in file:
|
||||||
file_name = line.strip()
|
file_name = line.strip()
|
||||||
if any(dir_name in file_name for dir_name in scan_dir_list):
|
if any(dir_name in file_name for dir_name in scan_dir_list):
|
||||||
if (file_name.endswith(".c") or file_name.endswith(".h") or line.endswith(".cpp")) and all(dir_name not in file_name for dir_name in scan_skip_file_list):
|
if (file_name.endswith(".c") or file_name.endswith(".h") or line.endswith(".cpp")) and all(dir_name not in file_name for dir_name in scan_skip_file_list):
|
||||||
if "enterprise" in file_name:
|
if "enterprise" in file_name:
|
||||||
file_name = os.path.join(source_path, file_name)
|
file_name = os.path.join(TD_project_path, file_name)
|
||||||
else:
|
else:
|
||||||
tdc_file_path = os.path.join(source_path, "community/")
|
tdc_file_path = os.path.join(TD_project_path, "community/")
|
||||||
file_name = os.path.join(tdc_file_path, file_name)
|
file_name = os.path.join(tdc_file_path, file_name)
|
||||||
all_file_path.append(file_name)
|
all_file_path.append(file_name)
|
||||||
print(f"all_file_path:{all_file_path}")
|
print(f"all_file_path:{all_file_path}")
|
||||||
|
@ -156,7 +163,7 @@ def write_csv(file_path, data):
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
command_executor = CommandExecutor()
|
command_executor = CommandExecutor()
|
||||||
# get all the c files path
|
# get all the c files path
|
||||||
# scan_files_path(source_path)
|
# scan_files_path(TD_project_path)
|
||||||
input_files(change_file_list)
|
input_files(change_file_list)
|
||||||
print(f"all_file_path:{all_file_path}")
|
print(f"all_file_path:{all_file_path}")
|
||||||
res = []
|
res = []
|
||||||
|
|
Loading…
Reference in New Issue