Subversion Repositories vgwhois

Compare Revisions

No changes between revisions

Regard whitespace Rev 1 → Rev 2

/trunk/maintenance/qa-monitor/testcases/status
0,0 → 1,121
#!/bin/bash
 
#
# generic Whois - Maintenance Framework: Testcases
#
# (c) 2012-2014 Daniel Marschall, ViaThinkSoft [www.viathinksoft.de]
#
# Distribution, usage etc. pp. regulated by the current version of GPL.
#
#
# Version 2014-08-25
#
 
DIR=$( dirname "$0" )
 
# ---
 
function FileAge() {
echo $((`date +%s` - `stat -c %Y $1`))
}
 
function HumanReadableAge() {
local seconds=$1
local days=$(($seconds/86400))
seconds=$(($seconds-($days*86400) ))
local hours=$(($seconds/3600))
seconds=$((seconds-($hours*3600) ))
local minutes=$(($seconds/60))
seconds=$(( $seconds-($minutes*60) ))
 
# echo -n "${days}D ${hours}H ${minutes}M ${seconds}S"
if [ $days -gt 0 ]; then
if [ $hours -gt 12 ]; then
((days++));
fi
echo -n "${days} days ago"
elif [ $hours -gt 0 ]; then
if [ $minutes -gt 30 ]; then
((hours++));
fi
echo -n "${hours} hours ago"
elif [ $minutes -gt 0 ]; then
if [ $seconds -gt 30 ]; then
((minutes++));
fi
echo -n "${minutes} minutes ago"
else
echo -n "a few seconds ago"
fi
}
 
# ---
 
. "$DIR/../../config/testcases.conf"
 
echo "Query Last activity Status"
echo "----------------------------------------------------------------------------------"
 
while read f; do
if [ -z "$f" ]; then
continue;
fi
 
# Check if the line begins with an '#' (leading spaces are permitted)
echo "$f" | grep -E "\s*^#" > /dev/null
if [ $? -eq 0 ]; then
continue;
fi
 
# Warum? "tld jp" wird dann zu "tld"
# query="$( basename $f )"
query="$f";
 
expfile="$DIR/../../.cache/testcases/expected/$query"
 
tsfile="$DIR/../../.cache/testcases/checktimestamps/$query"
if [ -f "$tsfile" ]; then
# lastcheck="$( date -r "$tsfile" )"
lastcheck=$( HumanReadableAge $( FileAge "$tsfile" ))
else
lastcheck="never"
fi
 
errfile="$DIR/../../.cache/testcases/problems/$query"
if [ -f "$errfile" ]; then
cat "$errfile" | grep -E "at /(bin|usr|etc|var)/\S+ line" > /dev/null
PERLERR=$?
 
cat "$errfile" | head -n 1 | grep -E "^("$'\xEF\xBB\xBF'"){0,1}Process query: '$query'" > /dev/null
STARTEXP=$?
 
cat "$errfile" | grep "gwhois remarks: If this is a valid domainname or handle, please file a bug report." > /dev/null
NOPATTERNMATCH=$?
 
if [ $PERLERR -eq 0 ]; then
status="Perl-Error!"
elif [ $STARTEXP -ne 0 ]; then
status="Unexpected head line"
elif [ $NOPATTERNMATCH -eq 0 ]; then
status="No pattern match"
elif [ -f "$expfile" ]; then
status="Different output"
else
status="No expected output defined"
fi
else
if [ -f "$expfile" ]; then
status="OK"
else
status="No expected output defined"
fi
fi
 
if [ ! -f "$tsfile" ] || [ $( stat --format=%Y "$tsfile" ) -le $(( $( date +%s ) - $recheck_time )) ]; then
if [ ! -f "$errfile" ] || [ $( stat --format=%Y "$errfile" ) -le $(( $( date +%s ) - $recheck_time )) ]; then
status="$status, outdated"
fi
fi
 
printf "%-30s %-20s %-20s\n" "$query" "$lastcheck" "$status"
done < "$DIR/../../config/testcases.list"
Property changes:
Added: svn:executable
+*
\ No newline at end of property