[Debian-pan-maintainers] Rapport d'avancement

RAHLI Oussama oussama.rahli at synchrotron-soleil.fr
Tue Jul 30 13:59:54 BST 2024



Bonjour à tous, 




Cette semaine, avec l'aide de Monsieur PICCA, nous avons créé des tests d'intégration pour xraylib et navarp . 




Pour xraylib , nous avons désormais trois types de tests : 

-meson : Ce test concerne la partie C du projet. Il configure le projet avec meson, compile des tests.c et des exemples.c en utilisant 'gcc' avec les bibliothèques spécifiées, puis exécute les binaires générés. 

-meson-c++ : Ce test s'occupe de la partie C++ du projet. Il configure le projet avec meson, compile des tests.cpp et des exemples.cpp en utilisant 'g++' avec les bibliothèques spécifiées, puis exécute les binaires générés. 

-python : Ce test vérifie les fichiers de test Python en utilisant toutes les versions disponibles de Python détectées par 'py3versions', puis exécute les tests unitaires avec 'unittest'. 










-Le contenu de script meson: 

#!/bin/sh -e 




CFLAGS=$(pkg-config --cflags libxrl) 

LIBS=$(pkg-config --libs libxrl) 




echo "testing C library" 




# generate the config.h file 

meson setup build 




# build C examples 

for f in example/*.c; do 

echo gcc -o "${f%.c}" "$CFLAGS" "$f" "$LIBS" -lm 

gcc -o "${f%.c}" $CFLAGS $f $LIBS -lm 

echo "run ${f%.c}" 

./"${f%.c}" 

done; 




# build all unit tests 

for f in tests/*.c; do 

echo gcc -o "${f%.c}" "$CFLAGS" -Isrc -Ibuild "$f" "$LIBS" -lm 

gcc -o "${f%.c}" $CFLAGS -Isrc -Ibuild $f $LIBS -lm 

echo "run ${f%.c}" 

./"${f%.c}" 

done; 




-Le contenu de script meson-c++: 




#!/bin/sh -e 




CFLAGS=$(pkg-config --cflags libxrl) 

LIBS=$(pkg-config --libs libxrl) 




echo "testing C++ library" 




# generate the config.h file 

meson setup build 




# build Cpp tests 

for f in cplusplus/tests/*.cpp; do 

echo g++ -o "${f%.cpp}" "$CFLAGS" -Isrc -Ibuild "$f" "$LIBS" -lm 

g++ -o "${f%.cpp}" $CFLAGS -Isrc -Ibuild $f $LIBS -lm 

echo "run ${f%.cpp}" 

./"${f%.cpp}" 

done; 







# build Cpp examples 

for f in example/*.cpp; do 

echo g++ -o "${f%.cpp}" "$CFLAGS" "$f" "$LIBS" -lm 

g++ -o "${f%.cpp}" $CFLAGS $f $LIBS -lm 

echo "run ${f%.cpp}" 

./"${f%.cpp}" 

done; 




-Le contenu de script python: 




#!/bin/sh -e 




for py in $(py3versions -r 2>/dev/null); do 

echo "Testing with $py: "; 

for f in python/tests/*.py; do 

$py -m unittest "$f" -v 

done; 




done; 

Pour navarp , nous avons désormais deux types de tests: 



-gui: Le script teste les binaires de tous les paquets installés en les exécutant avec une limite de temps de 5s , et gère les différents codes de sortie en fonction des résultats de l'exécution. 

-python : Ce test vérifie les fichiers de test Python en utilisant toutes les versions disponibles de Python détectées par 'py3versions', puis exécute les tests unitaires avec 'unittest'. 

-Le contenu de script gui: 
#!/bin/sh -ex 
allpkg=$(dh_listpackages) 

for p in $allpkg; do 
echo "Package being processed: $p" 

allbinaries=$(dpkg -L "$p"| grep "/usr/bin/") 
if [ -z "$allbinaries" ]; then 
echo "No binaries were found in this package" 
continue 
fi 
echo "Binaries of the package $p :" 
echo "$allbinaries" 
for f in $allbinaries; do 
timeout 5s "$f" 
ec=$? 
echo "tested $f: $ec" 
if [ $ec -eq 143 ]; then 
echo "trapped status 143 and return success for $f" 
elif [ $ec -eq 2 ]; then 
echo "Skipped exit code 2 for $f" 
else 
echo "skipped" 
#exit $ec 
fi 
done 
done 

exit 0 
-Le contenu de script python: 
#!/bin/sh -e 

cd examples; 

for py in $(py3versions -r 2>/dev/null); do 
echo "Testing with $py: "; 
for f in *.py; do 
$py -m unittest "$f" -v 
done; 
done; 

Bien cordialement, 

Oussama RAHLI 
Etudiant à l'insa de Rennes. 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-pan-maintainers/attachments/20240730/8d04a4d0/attachment-0001.htm>


More information about the Debian-pan-maintainers mailing list