Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ISPN-5897 Enhance filter_failed_tests.sh to support compressed logs #3791

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
34 changes: 18 additions & 16 deletions bin/failedTestLogs.sh
Original file line number Diff line number Diff line change
@@ -1,28 +1,30 @@
#!/bin/sh
#!/bin/bash

FILE=$1 ; shift
FAILED_TESTS="$*"

DIR=`dirname $0`
echo dir=$DIR
if [ -n $1 ] ; then FAILED_TESTS=$1 ; fi
#echo dir=$DIR

FILE=infinispan.log
ZFILE=infinispan.log.gz
CAT=cat
if [ \( ! -f $FILE \) -o \( $FILE -ot $ZFILE \) ] ; then FILE=$ZFILE ; CAT=zcat ; fi
if [ "${FILE##*.}" == "gz" ] ; then
CAT=zcat
fi

if [ ! -f $FILE ] ; then
echo "Could not open infinispan.log or infinispan.log.gz"
if [ ! -f "$FILE" ] ; then
echo "Could not read file $FILE"
fi

echo $CAT $FILE
export CAT FILE
echo Processing $FILE

if [ -z $FAILED_TESTS ] ; then
FAILED_TESTS=`$CAT $FILE | egrep "(Test failed)|(skipped\$)" | perl -ne '/.*\(.*\.(.*)\)$/; print "$1\n";' | sort | uniq`
if [ -z "$FAILED_TESTS" ] ; then
FAILED_TESTS=`$CAT $FILE | perl -ne '/Test .*\(.*\.(.*)\) (failed|skipped)\./ && print "$1\n";' | sort -u`
fi
echo Failed/skipped tests: $FAILED_TESTS

DATE=$(date +%Y%m%d)
for TEST in $FAILED_TESTS ; do
SHORTNAME=`perl -e '$t = $ARGV[0]; chomp $t; $t =~ s/[a-z0-9]//g; print $t;' $TEST`
LOWSHORTNAME=`perl -e '$t = $ARGV[0]; chomp $t; $t =~ s/[a-z0-9]//g; print lc $t;' $TEST`
echo "$TEST > $LOWSHORTNAME.log"
$CAT $FILE | $DIR/greplog.py "\b$TEST\b" | perl -npe "s/(?![a-zA-Z.])$TEST(?![a-zA-Z.])/$SHORTNAME/g" > $LOWSHORTNAME.log
TESTFILE=${TEST}_${DATE}.log
echo "Writing $TEST log to $TESTFILE"
$CAT $FILE | $DIR/greplog.py "\b$TEST\b" | perl -npe "s/$TEST-Node/Node/g" > $TESTFILE
done
20 changes: 12 additions & 8 deletions bin/filter_failed_tests.sh
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
#!/bin/sh

DIR=`dirname $0`
echo dir=$DIR
#echo dir=$DIR

for LOG_FILE in `find . -name "*.log"` ; do
FAILED_TESTS=`cat $LOG_FILE | egrep "Test .* (failed|skipped)\." | sed -e 's/.*(//' -e 's/).*//' | awk -F. ' { print $NF } ' | sort | uniq`
for LOG_FILE in `find . -name "*.log*"` ; do
CAT=cat
if [ "${FILE##*.}" == "gz" ] ; then
CAT=zcat
fi
FAILED_TESTS=`$CAT $LOG_FILE | perl -ne '/Test .*\(.*\.(.*)\) (failed|skipped)\./ && print "$1\n";' | sort -u`

if [ -z $FAILED_TESTS ]
if [ -z "$FAILED_TESTS" ]
then
echo "Processing log file: $LOG_FILE. No failed tests."
else
echo "Processing log file: $LOG_FILE. Failed tests: $FAILED_TESTS "
echo "Processing log file: $LOG_FILE. Failed tests: $FAILED_TESTS"
fi

for TEST in $FAILED_TESTS ; do
echo "Processing $TEST from $LOG_FILE "
echo "" > $TEST.log
SHORTNAME=`perl -e '$t = $ARGV[0]; chomp $t; $t =~ s/[a-z0-9]//g; print $t;' $TEST`
cat $LOG_FILE | python $DIR/greplog.py "\b$TEST\b" | perl -npe "s/(?![a-zA-Z.])$TEST(?![a-zA-Z.])/$SHORTNAME/g" > $TEST.log
TESTFILE=$(echo ${TEST}.log | tr / _)
TESTFILE=${TESTFILE//[^a-zA-Z0-9-_.]/}
$CAT $LOG_FILE | python $DIR/greplog.py "\b$TEST\b" | perl -npe "s/$TEST-Node/Node/g" > $TESTFILE
done

rm $LOG_FILE
Expand Down