#---On commence par faire une lecture du fichier .lis de référence et le fichier .lis de test---#
#---On extrait de ces fichiers uniquement les parties données puis on va les comparer entre-elles par rapport à des fichiers temporaires---#
open (LIS_REF, "$fichier_lis_ref");
open (LIS_TEST, "$fichier_lis_test");
open (FICHIER_TEMP_LIS_REF,">$fichier_temp_lis_ref");
open (FICHIER_TEMP_LIS_TEST,">$fichier_temp_lis_test");
while(<LIS_REF>)
{
my $ligne_ref = $_; #on déclare une variable qui va sauvegarder la ligne en cours
chomp($ligne_ref); #on retire à la fin de cette ligne, le retour à la ligne
$ligne_ref=~ s/^[ \t]+//mg; #on supprimme toutes les combinaisons de tabulation et d'espace
#Si on n'a pas de '#' et 'noeuds' et 'elements', la condition est validée
if(index($ligne_ref,'#') == -1)
{
my @tab_ref = split (/\s+/,$ligne_ref);
if(defined($tab_ref[0]))
{
print FICHIER_TEMP_LIS_REF ("@tab_ref \n");
}
}
}
close FICHIER_TEMP_LIS_REF;
close LIS_REF;
while(<LIS_TEST>)
{
my $ligne_test = $_;
chomp($ligne_test);
$ligne_test=~ s/^[ \t]+//mg;
if(index($ligne_test,'#') == -1)
{
my @tab_test = split (/\s+/,$ligne_test);
if(defined($tab_test[0]))
{
print FICHIER_TEMP_LIS_TEST ("@tab_test \n");
}
}
}
close FICHIER_TEMP_LIS_TEST;
close LIS_TEST;
#---On verifie si les deux fichiers .her sont identiques---#
system ("cmp $fichier_temp_her_test $fichier_temp_her_ref");
if ( $? == 0 )
{
print("Les deux fichiers .her sont identiques\n");
$valeur=$valeur+2; #on ajoute 2 dans le cas où le fichier .her est correct
}
elsif ( $? != 0 )
{
print("Les deux fichiers .her sont différents\n");
$valeur=$valeur+1; #on ajoute 1 dans le cas où le fichier .her est incorrect
}
#---On verifie si les deux fichiers .lis sont identiques---#
system ("cmp $fichier_temp_lis_test $fichier_temp_lis_ref");
if ( $? == 0 )
{
print("Les deux fichiers .lis sont identiques\n");
$valeur=$valeur+3; #on ajoute 3 dans le cas où le fichier .lis est correct
}
elsif ( $? != 0 )
{
print("Les deux fichiers .lis sont différents\n");
$valeur=$valeur+1; #on ajoute 1 dans le cas où le fichier .lis est incorrect
}
}
#------------------- Fin programme de comparaison -----------------#
#------------------- Bilan comparaison fichier -----------------#
#----Remarques----#
# Si valeur=1, alors les nouveaux fichiers .her et .lis n'ont pas été créés.
# Si valeur=2, alors le fichier .her et le fichier .lis sont incorrects.
# Si valeur=3, alors le fichier .her est correct mais le fichier .lis est incorrect.
# Si valeur=4, alors le fichier .her est incorrect mais le fichier .lis est correct.
# Si valeur=5, alors les deux fichiers sont corrects
#----Fin remarques----#
if($valeur==1)
{
print("Les fichiers $fichier_her_test et $fichier_lis_test n'ont pas été créés avec la version d'herezh testée: $HZ\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==2)
{
print("Le fichier $fichier_her_test a bien été créé mais son contenu est différent du fichier $fichier_her_ref et le fichier $fichier_lis_test a bien été créé mais son contenu est différent du fichier $fichier_lis_ref\n");
print("Le fichier $fichier_her_test a bien été créé et son contenu est similaire au fichier $fichier_her_ref mais le fichier $fichier_lis_test a bien été créé mais son contenu est différent du fichier $fichier_lis_ref\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==4)
{
print("Le fichier $fichier_her_test a bien été créé mais son contenu est différent du fichier $fichier_her_ref et le fichier $fichier_lis_test a bien été créé et son contenu est similaire au fichier $fichier_lis_ref\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==5)
{
print("Le fichier $fichier_her_test a bien été créé et son contenu est similaire au fichier $fichier_her_ref et le fichier $fichier_lis_test a bien été créé et son contenu est similaire au fichier $fichier_lis_ref\n");
print ("resultat verification: OK\n");
}
#------------------- Fin bilan comparaison fichier -----------------#
#------------------- Ménage dans le répertoire -----------------#
system ("rm -f $fichier_her_test $fichier_lis_test $fichier_temp_her_test $fichier_temp_her_ref $fichier_temp_lis_test $fichier_temp_lis_ref");