#!/bin/bash

# (C) -2002,2002-2009 Jose Calhariz
# License: GPL-2

# Faz extração do tar t.tar.bz2 e comparação para testar a qualidade
# do hardware.  A experiencia já demonstrou que falhar este teste que
# a máquina pode ter problemas mais tarde ou mais cedo.  

# $1 - Directoria onde será feito o teste.  
# $2 - Directoria extraida do ficheiro t.tar.bz2

erro () {
    echo
    echo "########################################################"
    echo Erro inesperado - $1
    exit 1
}

test_diff () {
setterm -blank 0
run=0
cd $1
name=`date +%Y-%m-%d_%H:%M`
dirext=${2:-linux-source-2.6.18}
touch ~/log/test_diff_${name}_start_stamp
echo "Preparing"
rm -fr linux-ref linux-diff || erro "Apagando antigos ficheiros"
bzip2 -dc t.tar.bz2 | tar xf - || erro "Extraindo referencia"
mv $dirext linux-ref || erro "Movendo directoria de referência"
while  true ; do
    {
	echo -n "==>>Comparação $[ run = run + 1 ] `date`"
	echo $run > ~/log/test_diff_${name}_tick_stamp
	touch ~/log/test_fs_${name}_tick_stamp
	echo -n " untar "
	bzip2 -dc t.tar.bz2 | tar xf - || erro "Extraindo ficheiros de testes"
	mv $dirext linux-diff || erro
	echo " diff"
	diff -r --brief --speed-large-files linux-ref linux-diff || erro "Comparando ficheiros"
	rm -r linux-diff || erro
    }
done
}

test_diff $1 $2

##  Local Variables:
##  mode: shell-script
##  mode: flyspell	
##  coding: utf-8
##  ispell-local-dictionary: portugues
##  End:
