Files
2026-07-13 12:40:42 +08:00

80 lines
2.9 KiB
Bash

#!/usr/bin/env bash
# Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
#
# 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.
set -e
export log_path=/workspace/case_logs
export auto_case_path=/workspace/Paddle/test/auto_parallel/hybrid_strategy
export dygraph_case_path=/workspace/Paddle/test/collective/hybrid_strategy
function case_list_unit() {
if [ ! -f "testslist.csv" ]; then
echo "Error: testslist.csv not found in current directory: $(pwd)"
exit -1
fi
if [ ! -f "${log_path}/blacklist.csv" ]; then
wget -P ${log_path}/ https://paddle-qa.bj.bcebos.com/Auto-Parallel/blacklist.csv --no-proxy || exit 101
echo -e "\033[31m ---- wget blacklist.csv \033[0m"
fi
blacklist_file=${log_path}/blacklist.csv
mapfile -t blacklist < "$blacklist_file"
target_key=${1:-"all"}
for ((i=2; i<=`awk -F, 'END {print NR}' testslist.csv`; i++)); do
item=`awk -F, 'NR=='$i' {print}' testslist.csv`
case_name=`awk -F, 'NR=='$i' {print $1}' testslist.csv`
if [[ ${target_key} != "all" ]] && [[ ! ${case_name} =~ ${target_key} ]]; then
echo "=========== skip $case_name run ==========="
continue
elif [[ " ${blacklist[@]} " == *" ${case_name} "* ]]; then
echo "======= skip blacklist case: $case_name run ======="
continue
else
echo "=========== $case_name run begin ==========="
fi
if [[ $item =~ PYTHONPATH=([^,;]*)([,;]|$) ]]; then
substring="${BASH_REMATCH[1]}"
echo "PYTHONPATH=$substring"
export PYTHONPATH=$substring:$PYTHONPATH
fi
python $case_name.py >>${log_path}/$case_name 2>&1
if [ $? -eq 0 ]; then
tail -n 10 ${log_path}/$case_name
fi
echo "=========== $case_name run end ==========="
done
}
main() {
export exec_case=$1
echo -e "\033[31m ---- Start executing $exec_case case \033[0m"
if [[ $exec_case == "auto_unit_test" ]];then
cd ${auto_case_path}
case_list_unit
elif [[ $exec_case == "dygraph_unit_test" ]];then
cd ${dygraph_case_path}
case_list_unit
elif [[ $exec_case == "llama_auto_unit_test" ]];then
cd ${auto_case_path}
case_list_unit llama
case_list_unit pir_reshard
else
echo -e "\033[31m ---- Invalid exec_case $exec_case \033[0m"
fi
}
main $@