271 lines
5.5 KiB
Bash
271 lines
5.5 KiB
Bash
#/bin/bash
|
|
|
|
### This tool is for BPI-R4 function test in manufacturer ###
|
|
RET=0
|
|
PREFIX=`pwd`/
|
|
DEUBGFILE=/var/run/r4-ft-script.log
|
|
|
|
AUTOMATIC_CASE_NUM=0
|
|
MANUAL_CASE_NUM=0
|
|
CASE_NUM=0
|
|
QUIT=0
|
|
|
|
echo " "
|
|
echo " "
|
|
echo " "
|
|
echo "######################################################################################"
|
|
|
|
echo "######################## BPI-R4 Function Testing Start ########################"
|
|
### Sets QUIT variable so script will finish. ###
|
|
quit()
|
|
{
|
|
QUIT=$1
|
|
}
|
|
|
|
### Sets ALL variable so script will run all test cases. ###
|
|
run_all_cases()
|
|
{
|
|
ALL="1"
|
|
}
|
|
|
|
### Run Function Test Case Script ###
|
|
run_script()
|
|
{
|
|
eval script_name=$1
|
|
eval script_file="${script_name}.sh"
|
|
eval args=$2
|
|
|
|
if [ ${script_name} == "run_all_cases" ]; then
|
|
${script_name} ${args}
|
|
return 0
|
|
fi
|
|
|
|
if [ ${script_name} == "quit" ]; then
|
|
${script_name} ${args}
|
|
return 0;
|
|
fi
|
|
|
|
cd ${script_name} > /dev/null
|
|
if [ -x ${script_file} ]; then
|
|
if [ "$ALL" == 1 ]; then
|
|
#./${script_file} >> ${DEUBGFILE} 2>&1
|
|
set -o pipefail
|
|
./${script_file} | tee -a ${DEUBGFILE}
|
|
SRET=$?
|
|
else
|
|
./${script_file}
|
|
SRET=$?
|
|
fi
|
|
|
|
if [ ${SRET} == 0 ] ; then
|
|
cd - > /dev/null
|
|
return 0
|
|
else
|
|
cd - > /dev/null
|
|
return 1
|
|
fi
|
|
else
|
|
cd - > /dev/null
|
|
echo "${script_file} is not available, please install ${script_file} scripts"
|
|
exit 1
|
|
fi
|
|
|
|
cd - > /dev/null
|
|
return 1
|
|
}
|
|
|
|
### Options for automaic test cases ###
|
|
step_automatic_func()
|
|
{
|
|
TITLE="Automatic Test Cases"
|
|
AUTOMATIC_CASE_NUM=9
|
|
CASE_NUM=9
|
|
|
|
TEXT_1="Memory_Test_Case"
|
|
FUNC_1="memory-script"
|
|
|
|
TEXT_2="WIFI_Test_Case"
|
|
FUNC_2="wifi-script"
|
|
|
|
TEXT_3="miniPCIeX2_Test_Case"
|
|
FUNC_3="minipciex2-script"
|
|
|
|
TEXT_4="miniPCIeUSB_Test_Case"
|
|
FUNC_4="minipcieusb-script"
|
|
|
|
TEXT_5="NVME_Test_Case"
|
|
FUNC_5="nvme-script"
|
|
|
|
TEXT_6="NAND_Test_sase"
|
|
FUNC_6="nand-script"
|
|
|
|
TEXT_7="EMMC_Test_sase"
|
|
FUNC_7="emmc-script"
|
|
|
|
TEXT_8="RTC_Test_sase"
|
|
FUNC_8="rtc-script"
|
|
|
|
TEXT_9="EEPROM_Test_sase"
|
|
FUNC_9="eeprom-script"
|
|
}
|
|
|
|
### Options for manual test cases ###
|
|
step_manual_func()
|
|
{
|
|
TITLE="Manual Test Cases"
|
|
MANUAL_CASE_NUM=10
|
|
CASE_NUM=10
|
|
|
|
TEXT_1="FAN_Test_Case"
|
|
FUNC_1="fan-script"
|
|
|
|
TEXT_2="LED_Test_Case"
|
|
FUNC_2="led-script"
|
|
|
|
TEXT_3="KEY_Test_Case"
|
|
FUNC_3="key-script"
|
|
|
|
TEXT_4="USB30_Test_Case"
|
|
FUNC_4="usb30-script"
|
|
|
|
TEXT_5="USB20_Test_Case"
|
|
FUNC_5="usb20-script"
|
|
|
|
TEXT_6="Ethernet_Test_Case"
|
|
FUNC_6="ethernet-script"
|
|
|
|
TEXT_7="26PINGPIO_Test_Case"
|
|
FUNC_7="26pingpio-script"
|
|
|
|
TEXT_8="M2KeyB_PCIE_Test_Case"
|
|
FUNC_8="m2keybpcie-script"
|
|
|
|
TEXT_9="M2KeyB_USB2_Test_Case"
|
|
FUNC_9="m2keybusb2-script"
|
|
|
|
TEXT_10="M2KeyB_USB3_Test_Case"
|
|
FUNC_10="m2keybusb3-script"
|
|
}
|
|
|
|
STEPS_1="step_automatic_func"
|
|
STEPS_2="step_manual_func"
|
|
|
|
rm -rf ${DEUBGFILE}
|
|
touch ${DEUBGFILE}
|
|
echo 0 > /proc/sys/kernel/printk
|
|
|
|
|
|
while [ "$QUIT" == "0" ]; do
|
|
OPTION_NUM=1
|
|
ALL="0"
|
|
|
|
echo "[$OPTION_NUM] run all cases"
|
|
eval OPTIONS_${OPTION_NUM}="run_all_cases"
|
|
eval OPTIONS_TXT_${OPTION_NUM}="All_Test_Cases"
|
|
let OPTION_NUM+=1
|
|
|
|
for s in `seq 2`
|
|
do
|
|
STEPS_VAR="STEPS_${s}"
|
|
eval STEPS_VAR=\$${STEPS_VAR}
|
|
${STEPS_VAR}
|
|
|
|
for i in `seq ${CASE_NUM}`
|
|
do
|
|
TEXT_VAR="TEXT_${i}"
|
|
FUNC_VAR="FUNC_${i}"
|
|
eval TEXT_VAR=\$${TEXT_VAR}
|
|
eval FUNC_VAR=\$${FUNC_VAR}
|
|
echo "[$OPTION_NUM] ${TEXT_VAR}"
|
|
eval OPTIONS_${OPTION_NUM}=${FUNC_VAR}
|
|
eval OPTIONS_TXT_${OPTION_NUM}=${TEXT_VAR}
|
|
let OPTION_NUM+=1
|
|
done
|
|
|
|
#echo ""
|
|
done
|
|
|
|
echo "[$OPTION_NUM] Exit Script"
|
|
eval OPTIONS_${OPTION_NUM}="quit"
|
|
eval OPTIONS_TXT_${OPTION_NUM}="Quit"
|
|
|
|
echo ""
|
|
echo -n "Option: "
|
|
read our_entry
|
|
echo ""
|
|
|
|
if [ ${our_entry} -lt 1 ]; then
|
|
echo "Wrong Selecttion Number"
|
|
continue
|
|
else
|
|
if [ ${our_entry} -gt ${OPTION_NUM} ]; then
|
|
echo "Wrong Selecttion Number"
|
|
continue
|
|
fi
|
|
fi
|
|
|
|
OPTIONS_VAR="OPTIONS_${our_entry}"
|
|
eval OPTIONS_VAR=\$${OPTIONS_VAR}
|
|
run_script ${OPTIONS_VAR} ${our_entry}
|
|
|
|
index=1
|
|
if [ "$ALL" == "1" ] ; then
|
|
for case_n in `seq ${OPTION_NUM}`
|
|
do
|
|
echo "---------------------------------------"
|
|
OPTIONS_VAR="OPTIONS_${case_n}"
|
|
OPTIONS_TXT_VAR="OPTIONS_TXT_${case_n}"
|
|
eval OPTIONS_VAR=\$${OPTIONS_VAR}
|
|
eval OPTIONS_TXT_VAR=\$${OPTIONS_TXT_VAR}
|
|
|
|
if [ ${OPTIONS_VAR} == "quit" ]; then
|
|
quit
|
|
break
|
|
fi
|
|
|
|
if [ ${OPTIONS_VAR} == "run_all_cases" ]; then
|
|
continue
|
|
fi
|
|
|
|
eval TEST_ITEM_${index}=${OPTIONS_TXT_VAR}
|
|
run_script ${OPTIONS_VAR} ${case_n}
|
|
eval TEST_RESULT_${index}=$?
|
|
let index+=1
|
|
done
|
|
|
|
let index-=1
|
|
echo "============================================"
|
|
echo "Test Result"
|
|
echo "--------------------------------------------"
|
|
echo " Item Result "
|
|
echo "--------------------------------------------"
|
|
for i in `seq ${index}`
|
|
do
|
|
TEST_ITEM_VAR="TEST_ITEM_${i}"
|
|
TEST_RESULT_VAR="TEST_RESULT_${i}"
|
|
eval TEST_ITEM_VAR=\$${TEST_ITEM_VAR}
|
|
eval TEST_RESULT_VAR=\$${TEST_RESULT_VAR}
|
|
|
|
echo -n "${TEST_ITEM_VAR} " | awk -F ',' '{printf("%-36s", $1)}'
|
|
if [ ${TEST_RESULT_VAR} == 0 ]; then
|
|
echo "Pass"
|
|
else
|
|
echo "Fail"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if [ "$QUIT" == "0" ] ; then
|
|
echo
|
|
fi
|
|
|
|
done
|
|
|
|
echo "######################################################################################"
|
|
echo " "
|
|
echo " "
|
|
echo " "
|
|
|
|
return ${RET}
|
|
|