已合并
适配rdv功能 #2787
fengdaoyong创建于 5月18日
适配rdv功能 #2787
已合并
fengdaoyong创建于 5月18日
1 个文件变更+63-7
@@ -68,6 +68,30 @@ usage() {
68 echo " bash ops_st_test.sh --soc_version=ascend950 --test_type=kernel,e2e"68 echo " bash ops_st_test.sh --soc_version=ascend950 --test_type=kernel,e2e"
69}69}
70 70 
71+merge_ops_lists() {
72+ local list1="$1"
73+ local list2="$2"
74+ local merged=""
75+
76+ for op in ${list1//,/ }; do
77+ if [[ -z "${merged}" ]]; then
78+ merged="${op}"
79+ elif [[ ",${merged}," != *",${op},"* ]]; then
80+ merged="${merged},${op}"
81+ fi
82+ done
83+
84+ for op in ${list2//,/ }; do
85+ if [[ -z "${merged}" ]]; then
86+ merged="${op}"
87+ elif [[ ",${merged}," != *",${op},"* ]]; then
88+ merged="${merged},${op}"
89+ fi
90+ done
91+
92+ echo "${merged}"
93+}
94+ 
71get_changed_ops() {95get_changed_ops() {
72 local pr_filelist="$1"96 local pr_filelist="$1"
73 local base_branch="master"97 local base_branch="master"
@@ -79,7 +103,7 @@ get_changed_ops() {
79 return 1103 return 1
80 fi104 fi
81 print_msg "Reading changed files from: ${pr_filelist}"105 print_msg "Reading changed files from: ${pr_filelist}"
82- changed_files=$(cat "${pr_filelist}" | grep -v '^$' | grep -v '^#' || echo "")106+ changed_files=$(cat "${pr_filelist}" | grep -v '^$' | grep -v '^#' || sed -E 's/^[MADRC][0-9]*[[:space]]+//' || echo "")
83 else107 else
84 changed_files=$(git diff --name-only "${base_branch}...HEAD" 2>/dev/null || git diff --name-only HEAD~1 HEAD 2>/dev/null || echo "")108 changed_files=$(git diff --name-only "${base_branch}...HEAD" 2>/dev/null || git diff --name-only HEAD~1 HEAD 2>/dev/null || echo "")
85 fi109 fi
@@ -116,8 +140,7 @@ download_ops_test_kit() {
116 140 
117 if [[ ! -d "${ttk_path}" ]]; then141 if [[ ! -d "${ttk_path}" ]]; then
118 print_msg "Downloading ops-test-kit via cmake..."142 print_msg "Downloading ops-test-kit via cmake..."
119- cd "${build_path}"143+ (cd "${build_path}" && cmake -DDOWNLOAD_OPS_TEST_KIT=ON "${framework_path}") || {
120- cmake -DDOWNLOAD_OPS_TEST_KIT=ON "${framework_path}" || {
121 print_error "Failed to download ops-test-kit via cmake"144 print_error "Failed to download ops-test-kit via cmake"
122 exit 1145 exit 1
123 }146 }
@@ -240,6 +263,26 @@ check_precision_status() {
240 return $?263 return $?
241}264}
242 265 
266+check_plugin_assets() {
267+ local plugin_path="$1"
268+ local op_name="$2"
269+
270+ local assets_path="${plugin_path}/assets"
271+
272+ if [[ ! -d "${assets_path}" ]]; then
273+ print_warning "assets directory not found for ${op_name}: ${assets_path}"
274+ return 1
275+ fi
276+
277+ local py_files=$(find "${assets_path}" -maxdepth 1 -name "*.py" -type f 2>/dev/null | head -1)
278+ if [[ -z "${py_files}" ]]; then
279+ print_warning "No .py files found in assets directory for ${op_name}: ${assets_path}"
280+ return 1
281+ fi
282+
283+ return 0
284+}
285+ 
243run_kernel_test() {286run_kernel_test() {
244 local op_name="$1"287 local op_name="$1"
245 local test_csv="$2"288 local test_csv="$2"
@@ -255,6 +298,10 @@ run_kernel_test() {
255 return 0298 return 0
256 fi299 fi
257 300 
301+ if ! check_plugin_assets "${ops_test_path}" "${op_name}"; then
302+ return 0
303+ fi
304+ 
258 local testcase_name=$(basename "${test_csv}" .csv)305 local testcase_name=$(basename "${test_csv}" .csv)
259 if [[ "${test_csv}" == */arch3[0-9]/* || "${test_csv}" == */arch2[0-9]/* ]]; then306 if [[ "${test_csv}" == */arch3[0-9]/* || "${test_csv}" == */arch2[0-9]/* ]]; then
260 testcase_name="$(basename "$(dirname "${test_csv}")")_${testcase_name}"307 testcase_name="$(basename "$(dirname "${test_csv}")")_${testcase_name}"
@@ -266,7 +313,7 @@ run_kernel_test() {
266 313 
267 cd "${ttk_path}"314 cd "${ttk_path}"
268 315 
269- local cmd="python3 -m ttk kernel -i ${test_csv} -o ${log_op_dir}/${testcase_name}_result.csv --plugin ${ops_test_path} -c -b=release --pc=8 --warmup=false"316+ local cmd="python3 -m ttk kernel -i ${test_csv} -o ${log_op_dir}/${testcase_name}_result.csv --plugin ${ops_test_path} -c --pc=8 --warmup=false"
270 print_msg "Executing: ${cmd}"317 print_msg "Executing: ${cmd}"
271 318 
272 local start_time=$(date +%s)319 local start_time=$(date +%s)
@@ -624,10 +671,19 @@ mkdir -p "${log_path}"
624 671 
625download_ops_test_kit672download_ops_test_kit
626 673 
627-if [[ -z "${ops_list}" ]]; then674+if [[ -n "${ops_list}" && -z "${pr_filelist}" ]]; then
628- print_msg "Extracting ops from git diff or pr_filelist..."675+ print_msg "Using ops from --ops parameter: ${ops_list}"
676+elif [[ -z "${ops_list}" && -n "${pr_filelist}" ]]; then
677+ print_msg "Extracting ops from pr_filelist..."
629 ops_list=$(get_changed_ops "${pr_filelist}")678 ops_list=$(get_changed_ops "${pr_filelist}")
630- ops_list=$(echo "${ops_list}" | tr ';' ',')679+elif [[ -n "${ops_list}" && -n "${pr_filelist}" ]]; then
680+ print_msg "Merging ops from pr_filelist and --ops parameter..."
681+ print_msg "--ops input: ${ops_list}"
682+ ops_from_filelist=$(get_changed_ops "${pr_filelist}")
683+ ops_list=$(merge_ops_lists "${ops_from_filelist}" "${ops_list}")
684+else
685+ print_msg "Extracting ops from git diff..."
686+ ops_list=$(get_changed_ops)
631fi687fi
632 688 
633if [[ -z "${ops_list}" ]]; then689if [[ -z "${ops_list}" ]]; then