已合并
适配rdv功能 #2787
fengdaoyong创建于 5月18日
适配rdv功能 #2787
已合并
共 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 | + | ||
| 71 | get_changed_ops() { | 95 | get_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 1 | 103 | return 1 |
| 80 | fi | 104 | 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 | else | 107 | 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 | fi | 109 | fi |
| @@ -116,8 +140,7 @@ download_ops_test_kit() { | |||
| 116 | 140 | ||
| 117 | if [[ ! -d "${ttk_path}" ]]; then | 141 | 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 1 | 145 | 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 | + | ||
| 243 | run_kernel_test() { | 286 | run_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 0 | 298 | return 0 |
| 256 | fi | 299 | 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]/* ]]; then | 306 | 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 | ||
| 625 | download_ops_test_kit | 672 | download_ops_test_kit |
| 626 | 673 | ||
| 627 | -if [[ -z "${ops_list}" ]]; then | 674 | +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) | ||
| 631 | fi | 687 | fi |
| 632 | 688 | ||
| 633 | if [[ -z "${ops_list}" ]]; then | 689 | if [[ -z "${ops_list}" ]]; then |