@@ -54,30 +54,32 @@ function prepare_paddle_env() {
5454
5555function check_torch_validation() {
5656 LOG " [INFO] Start run validate for changed torch samples ..."
57- MODIFIED_MODEL_PATHS=( )
58- for file in $( git diff --name-only develop | grep -E " \bsamples\b/(.*\.py|.*\.json) " )
59- do
57+ mapfile -t MODIFIED_FILES < <( git diff --name-only develop | grep -E " \bsamples\b/(.*\.py|.*\.json) " )
58+ declare -A unique_paths
59+ for file in " ${MODIFIED_FILES[@]} " ; do
6060 LOG " [INFO] Found ${file} modified."
61- model_path=$( dirname ${file} )
62- MODIFIED_MODEL_PATHS[ ${ # MODIFIED_MODEL_PATHS[@]} ]= $model_path
61+ model_path=$( dirname " ${file} " )
62+ unique_paths[ " $model_path " ]=1
6363 done
64- MODIFIED_MODEL_PATHS=( $( echo ${ MODIFIED_MODEL_PATHS[@]} | tr ' ' ' \n' | sort | uniq ) )
64+ mapfile -t MODIFIED_MODEL_PATHS < <( printf ' %s \n' " ${ ! unique_paths[@]} " | sort )
6565 local total_models=${# MODIFIED_MODEL_PATHS[@]}
6666 if [ ${total_models} -eq 0 ]; then
6767 LOG " [INFO] No changed torch sample models detected. Skip torch validation."
6868 return 0
6969 fi
70- LOG " [INFO] Validation will run on ${total_models} torch model path(s): ${MODIFIED_MODEL_PATHS[@]} "
70+ LOG " [INFO] Validation will run on ${total_models} torch model path(s):"
71+ printf " - %s\n" " ${MODIFIED_MODEL_PATHS[@]} " >&2
7172 fail_name=()
72- for model_path in ${MODIFIED_MODEL_PATHS[@]}
73+ for model_path in " ${MODIFIED_MODEL_PATHS[@]} "
7374 do
74- python -m graph_net.torch.validate --model-path ${GRAPH_NET_EXTRACT_WORKSPACE} /${model_path} --graph-net-samples-path ${GRAPH_NET_EXTRACT_WORKSPACE} /samples >&2
75+ python -m graph_net.torch.validate --model-path " ${GRAPH_NET_EXTRACT_WORKSPACE} /${model_path} " --graph-net-samples-path " ${GRAPH_NET_EXTRACT_WORKSPACE} /samples" >&2
7576 [ $? -ne 0 ] && fail_name[${# fail_name[@]} ]=" ${model_path} "
7677 done
7778 local failed_cnt=${# fail_name[@]}
7879 if [ ${failed_cnt} -ne 0 ]; then
79- LOG " [FATAL] Failed tests (${failed_cnt} /${total_models} ): ${fail_name[@]} "
80- echo ${fail_name[@]}
80+ LOG " [FATAL] Failed tests (${failed_cnt} /${total_models} ):"
81+ printf " - %s\n" " ${fail_name[@]} " >&2
82+ printf " %s\n" " ${fail_name[@]} "
8183 exit -1
8284 else
8385 LOG " [INFO] All torch sample validations passed (0 failures / ${total_models} total)."
@@ -86,30 +88,32 @@ function check_torch_validation() {
8688
8789function check_paddle_validation() {
8890 LOG " [INFO] Start run validate for changed paddle samples ..."
89- MODIFIED_MODEL_PATHS=( )
90- for file in $( git diff --name-only develop | grep -E " \bpaddle_samples\b/(.*\.py|.*\.json) " )
91- do
91+ mapfile -t MODIFIED_FILES < <( git diff --name-only develop | grep -E " \bsamples\b/(.*\.py|.*\.json) " )
92+ declare -A unique_paths
93+ for file in " ${MODIFIED_FILES[@]} " ; do
9294 LOG " [INFO] Found ${file} modified."
93- model_path=$( dirname ${file} )
94- MODIFIED_MODEL_PATHS[ ${ # MODIFIED_MODEL_PATHS[@]} ]= $model_path
95+ model_path=$( dirname " ${file} " )
96+ unique_paths[ " $model_path " ]=1
9597 done
96- MODIFIED_MODEL_PATHS=( $( echo ${ MODIFIED_MODEL_PATHS[@]} | tr ' ' ' \n' | sort | uniq ) )
98+ mapfile -t MODIFIED_MODEL_PATHS < <( printf ' %s \n' " ${ ! unique_paths[@]} " | sort )
9799 local total_models=${# MODIFIED_MODEL_PATHS[@]}
98100 if [ ${total_models} -eq 0 ]; then
99101 LOG " [INFO] No changed paddle sample models detected. Skip paddle validation."
100102 return 0
101103 fi
102- LOG " [INFO] Validation will run on ${total_models} paddle model path(s): ${MODIFIED_MODEL_PATHS[@]} "
104+ LOG " [INFO] Validation will run on ${total_models} paddle model path(s):"
105+ printf " - %s\n" " ${MODIFIED_MODEL_PATHS[@]} " >&2
103106 fail_name=()
104- for model_path in ${MODIFIED_MODEL_PATHS[@]}
107+ for model_path in " ${MODIFIED_MODEL_PATHS[@]} "
105108 do
106- python -m graph_net.paddle.validate --model-path ${GRAPH_NET_EXTRACT_WORKSPACE} /${model_path} --graph-net-samples-path ${GRAPH_NET_EXTRACT_WORKSPACE} /samples >&2
109+ python -m graph_net.paddle.validate --model-path " ${GRAPH_NET_EXTRACT_WORKSPACE} /${model_path} " --graph-net-samples-path " ${GRAPH_NET_EXTRACT_WORKSPACE} /samples" >&2
107110 [ $? -ne 0 ] && fail_name[${# fail_name[@]} ]=" ${model_path} "
108111 done
109112 local failed_cnt=${# fail_name[@]}
110113 if [ ${failed_cnt} -ne 0 ]; then
111- LOG " [FATAL] Failed tests (${failed_cnt} /${total_models} ): ${fail_name[@]} "
112- echo ${fail_name[@]}
114+ LOG " [FATAL] Failed tests (${failed_cnt} /${total_models} ):"
115+ printf " - %s\n" " ${fail_name[@]} " >&2
116+ printf " %s\n" " ${fail_name[@]} "
113117 exit -1
114118 else
115119 LOG " [INFO] All paddle sample validations passed (0 failures / ${total_models} total)."
0 commit comments