1#!/bin/bash 2 3WAVS_PATH=$1 4ERR_CNT=0 5 6PREFIX_LOG="/tmp/check_logs" 7TMP_STAT_LOG="tmp_stat.log" 8TMP_STATS_LOG="tmp_stats.log" 9STAT_LOG="stat.log" 10STATS_LOG="stats.log" 11RESULT_LOG="result.log" 12 13echo "WAVS_PATH: $WAVS_PATH" 14 15check_prepare() 16{ 17 if [ -n "$PREFIX_LOG" ]; then 18 TMP_STAT_LOG="$PREFIX_LOG/$TMP_STAT_LOG" 19 TMP_STATS_LOG="$PREFIX_LOG/$TMP_STATS_LOG" 20 STAT_LOG="$PREFIX_LOG/$STAT_LOG" 21 STATS_LOG="$PREFIX_LOG/$STATS_LOG" 22 RESULT_LOG="$PREFIX_LOG/$RESULT_LOG" 23 24 mkdir -p $PREFIX_LOG 25 else 26 echo "PREFIX_LOG is empty" 27 fi 28 29 rm $TMP_STAT_LOG -f 30 rm $TMP_STATS_LOG -f 31 rm $STAT_LOG -f 32 rm $STATS_LOG -f 33 34 echo "there is no error on test loopback" > $RESULT_LOG 35} 36 37# There is don't need to add function keyword on busybox shell 38check_wav() 39{ 40 wav=$1 41 threshold_db=-15 42 43 echo "will check wav: $wav with threshold_db: $threshold_db" 44 45 sox $wav -n stat 2> $TMP_STAT_LOG 46 sox $wav -n stats 2> $TMP_STATS_LOG 47 48 echo "======== $wav stat info: ========" >> $STAT_LOG 49 cat $TMP_STAT_LOG >> $STAT_LOG 50 echo >> $STAT_LOG 51 52 echo "======== $wav stats info: ========" >> $STATS_LOG 53 cat $TMP_STATS_LOG >> $STATS_LOG 54 echo >> $STATS_LOG 55 56 l_pk=`awk 'NR==5{ printf "%.2f", $5 }' $TMP_STATS_LOG` 57 r_pk=`awk 'NR==5{ printf "%.2f", $6 }' $TMP_STATS_LOG` 58 echo "l_pk: $l_pk, r_pk: $r_pk" 59 60 last_err=$ERR_CNT 61 ERR_CNT=$(echo $l_pk $threshold_db $ERR_CNT | awk '{ 62 if ($1 > $2) { 63 $3+=1; 64 } 65 } END { 66 printf "%d", $3; 67 }') 68 69 if [ $last_err != $ERR_CNT ]; then 70 echo "ERROR! $wav Left Pk lev dB: $l_pk > $threshold_db" >> $RESULT_LOG 71 else 72 echo "OK! $wav Left Pk lev dB: $l_pk < $threshold_db" >> $RESULT_LOG 73 fi 74 75 last_err=$ERR_CNT 76 ERR_CNT=$(echo $r_pk $threshold_db $ERR_CNT | awk '{ 77 if ($1 > $2) { 78 $3+=1; 79 } 80 } END { 81 printf "%d", $3; 82 }') 83 84 if [ $last_err != $ERR_CNT ]; then 85 echo "ERROR! $wav Right Pk lev dB: $r_pk > $threshold_db" >> $RESULT_LOG 86 else 87 echo "OK! $wav Right Pk lev dB: $r_pk < $threshold_db" >> $RESULT_LOG 88 fi 89 90 echo "total ERR_CNT: $ERR_CNT" 91 92 #cat $TMP_STATS_LOG | while read line 93 #do 94 # echo "line: $line" 95 # label=`echo $line | awk '{ print $1 }'` 96 # echo "label: $label" 97 #done 98} 99 100check_start() 101{ 102 cd $WAVS_PATH 103 104 check_prepare 105 106 for file in `ls $WAVS_PATH` 107 do 108 if [ -f $file ]; then 109 # echo "found file: $file" 110 111 suffix=$(echo "$file" | cut -d . -f2) 112 # echo "found suffix: $suffix" 113 114 if [ $suffix == "wav" ]; then 115 # echo "found wav file: $file" 116 check_wav $file 117 fi 118 fi 119 done 120} 121 122check_start 123