#!/bin/bash C_LRED='\033[1;31m' C_LGREEN='\033[1;32m' C_LCYAN='\033[1;36m' C_NC='\033[0m' C_BLINK='\033[5m' C_BOLD='\033[1m' PING_ADDR="192.168.10.1" MAC_ADDR="" ETH_NAME="eth0" SUMMARY_PATH="/tmp/list" JIG_PATH="/root/.falinux/prime_jig/" RESULT_LOG="${JIG_PATH}result_log" THREAD_FUNC_SCRIPT="${JIG_PATH}thread_func.sh" FRAM_TEST_APP="${JIG_PATH}fram_test" COMPLETE_TEST_NAME="" function Init() { if [ -f "${SUMMARY_PATH}" ]; then rm -rf ${SUMMARY_PATH} fi } function summary() { clear echo -e "" echo -e "============================" echo -e " Test Summary " echo -e "============================" cat $SUMMARY_PATH echo -e "============================" echo -e " MAC: ${MAC_ADDR}" echo -e "============================" echo -e "" echo -e "" } function save_result() { echo -e "" >> ${RESULT_LOG} echo -e "============================" >> ${RESULT_LOG} echo -e " Test Summary " >> ${RESULT_LOG} echo -e "============================" >> ${RESULT_LOG} cat $SUMMARY_PATH >> ${RESULT_LOG} echo -e "============================" >> ${RESULT_LOG} echo -e " MAC: ${MAC_ADDR}" >> ${RESULT_LOG} echo -e "============================" >> ${RESULT_LOG} echo -e "" >> ${RESULT_LOG} echo -e "" >> ${RESULT_LOG} sync } function error_check() { if [ "$1" != "0" ]; then echo -e "[${C_LRED}ERR${C_NC}]: $2" >> $SUMMARY_PATH else echo -e "[${C_LGREEN} OK${C_NC}]: $2" >> $SUMMARY_PATH fi } function test_mac() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} for i in 0xfa 0xfb 0xfc 0xfd 0xfe 0xff do if [ "$i" == "0xfa" ]; then EEPROM_MAC=$(i2cget -f -y 1 0x50 $i b | sed 's/0x//') else EEPROM_MAC+=$(i2cget -f -y 1 0x50 $i b | sed 's/0x/:/') fi done MAC_ADDR="${EEPROM_MAC^^}" ETH_MAC=$(ifconfig | grep eth0 | awk {'print $5'}) if [ "${EEPROM_MAC^^}" = "${ETH_MAC^^}" ]; then return $? else return -1 fi } function check_ping() { for i in 1 2 3 4 do sleep 1 ping -c 1 -w 1 $PING_ADDR > /dev/null if [ "$?" = "0" ]; then return $? fi done return -1 } function check_ethernet() { echo "Check Ethernet Link Up/Down" if [ $(cat /sys/class/net/$1/operstate) = "up" ]; then return 0 else ifconfig eth0 up return -1 fi } function test_ethernet() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test IFACE="$1" for i in {1..10} do check_ethernet $IFACE if [ "$?" = "0" ]; then break else echo "$IFACE Link is down" fi sleep 1 done udhcpc -i eth0 -n -q if [ "$?" != 0 ]; then return -1 fi check_ping if [ "$?" != 0 ]; then return -1 fi return $? } function test_rtc() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test ls /dev/rtc0 if [ "$?" != 0 ]; then return -1 fi return $? } TOUCH_IC_NAME="TSC2007" function test_touch() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test cat /proc/bus/input/devices | grep $TOUCH_IC_NAME if [ "$?" != "0" ]; then return -1 fi hexdump /dev/input/event0 & if [ "$?" != "0" ]; then return -1 fi echo -e "" echo -e "${C_BLINK}${C_BOLD}Press any key to ${FUNCNAME} exit...${C_NC}" echo -e "" read -rs killall hexdump return 0 } BACK_LIGHT="/sys/class/backlight/backlight_lvds.19/brightness" function test_lcd() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test fb-test if [ "$?" != 0 ]; then return -1 fi sleep 1 echo 0 > $BACK_LIGHT sleep 1 echo 10 > $BACK_LIGHT sleep 1 echo 0 > $BACK_LIGHT sleep 1 echo 10 > $BACK_LIGHT sleep 1 echo 0 > $BACK_LIGHT sleep 1 echo 5 > $BACK_LIGHT return $? } function test_encoder() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test ${THREAD_FUNC_SCRIPT} evtest & if [ "$?" != 0 ]; then return -1 fi echo -e "" echo -e "${C_BLINK}${C_BOLD}Press any key to ${FUNCNAME} exit...${C_NC}" echo -e "" read -rs killall evtest return $? } WAV_FILE="${JIG_PATH}opening.wav" function test_audio() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test aplay $WAV_FILE if [ "$?" != "0" ]; then return -1 fi return $? } function test_usb_storage() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test ls /dev/sda if [ "$?" != "0" ]; then return -1 fi ls /dev/sdb return $? } function test_fram() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test ${FRAM_TEST_APP} if [ "$?" != "0" ]; then return -1 fi return $? } function test_tty() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} WRITE_MSG="FALINUX_TTY" # TODO Test DEV_TTY_PATH="/dev/ttymxc1" ${THREAD_FUNC_SCRIPT} tty ${DEV_TTY_PATH} ${WRITE_MSG} & read -s -t 5 READ_MSG < ${DEV_TTY_PATH} if [ "$?" != 0 ]; then return -1 fi echo "Read: [${READ_MSG}]" if [ "${WRITE_MSG}" != "${READ_MSG}" ]; then return -1 fi return $? } function test_rs485() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test DEV_RS485_PATH1="/dev/ttymxc2" DEV_RS485_PATH2="/dev/ttymxc3" # Read : RS485_1, Write : RS485_2 RS485_WRITE_MSG="FALINUX_TEST:"${DEV_RS485_PATH2} ${THREAD_FUNC_SCRIPT} rs485 ${DEV_RS485_PATH2} ${RS485_WRITE_MSG} & read -s -t 5 RS485_READ_MSG < ${DEV_RS485_PATH1} if [ "$?" != 0 ]; then return -1 fi echo "Read: [${RS485_READ_MSG}]" if [ "${RS485_WRITE_MSG}" != "${RS485_READ_MSG}" ]; then return -1 fi # Read : RS485_2, Write : RS485_1 RS485_WRITE_MSG="FALINUX_TEST:"${DEV_RS485_PATH1} ${THREAD_FUNC_SCRIPT} rs485 ${DEV_RS485_PATH1} ${RS485_WRITE_MSG} & read -s -t 5 RS485_READ_MSG < ${DEV_RS485_PATH2} if [ "$?" != 0 ]; then return -1 fi echo "Read: [${RS485_READ_MSG}]" if [ "${RS485_WRITE_MSG}" != "${RS485_READ_MSG}" ]; then return -1 fi return $? } function test_default() { echo "" echo -e "${C_LCYAN}### [${FUNCNAME}] ###${C_NC}" echo "" COMPLETE_TEST_NAME=${FUNCNAME} # TODO Test return $? } function main() { echo "" echo -e " ### Start DEV Test - [${FUNCNAME}] ###" echo "" Init test_mac error_check $? ${COMPLETE_TEST_NAME} test_ethernet ${ETH_NAME} error_check $? ${COMPLETE_TEST_NAME} test_rtc error_check $? ${COMPLETE_TEST_NAME} test_touch error_check $? ${COMPLETE_TEST_NAME} test_lcd error_check $? ${COMPLETE_TEST_NAME} test_encoder error_check $? ${COMPLETE_TEST_NAME} test_audio error_check $? ${COMPLETE_TEST_NAME} test_usb_storage error_check $? ${COMPLETE_TEST_NAME} test_fram error_check $? ${COMPLETE_TEST_NAME} test_tty error_check $? ${COMPLETE_TEST_NAME} test_rs485 error_check $? ${COMPLETE_TEST_NAME} summary save_result } function test_func() { echo "" echo -e " ### TEST Func - [${FUNCNAME}] ###" echo "" test_encoder error_check $? ${COMPLETE_TEST_NAME} } main