Skip to content
Extraits de code Groupes Projets
Valider ce738fca rédigé par Samuel de Meester de Ravestein's avatar Samuel de Meester de Ravestein
Parcourir les fichiers

polishing up the tests

parent 30ccd445
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -41,7 +41,7 @@ makelinksim:
@make -C linksimulator/
# It is likely that you will need to update this
tests: all
tests: debug
@./tests/run_tests.sh
# By default, logs are disabled. But you can enable them with the debug target.
......
......@@ -7,26 +7,32 @@ fi
FILENAME=$1
BASENAME=$(basename $FILENAME)
TEST_OUTPUT_FILES='unwanted_logs/advanced_tests'
BSN_PRE="${BASENAME%.*}"
BSN_EXT="${BASENAME##*.}"
GREEN='\033[0;32m'
NC='\033[0m'
# Create the logs directory
mkdir unwanted_logs 2>/dev/null
mkdir ${TEST_OUTPUT_FILES}/ 2>/dev/null
# cleanup d'un test précédent
rm -f ./unwanted_logs/adv_${BSN_PRE}_received_file.${BSN_EXT} ./unwanted_logs/adv_valgrind_${BSN_PRE}_receiver.log ./unwanted_logs/adv_valgrind_${BSN_PRE}_sender.log
touch ./unwanted_logs/adv_${BSN_PRE}_received_file.${BSN_EXT} ./unwanted_logs/adv_valgrind_${BSN_PRE}_receiver.log ./unwanted_logs/adv_valgrind_${BSN_PRE}_sender.log
rm -f ${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_received_file.${BSN_EXT} \
${TEST_OUTPUT_FILES}/adv_valgrind_${BSN_PRE}_receiver.log \
${TEST_OUTPUT_FILES}/adv_valgrind_${BSN_PRE}_sender.log
touch ${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_received_file.${BSN_EXT} \
${TEST_OUTPUT_FILES}/adv_valgrind_${BSN_PRE}_receiver.log \
${TEST_OUTPUT_FILES}/adv_valgrind_${BSN_PRE}_sender.log
# We first launch the link simulator
./linksimulator/link_sim -p 65027 -P 65139 -l 70 -d 1500 -e 20 -c 10 -R &>./unwanted_logs/adv_${BSN_PRE}_link.log &
./linksimulator/link_sim -p 65027 -P 65139 -l 70 -d 1500 -e 20 -c 10 -R &>${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_link.log &
link_pid=$!
# On lance le receiver et capture sa sortie standard
valgrind --leak-check=full --log-file=./unwanted_logs/adv_${BSN_PRE}_valgrind_receiver.log ./receiver ::1 65139 1> ./unwanted_logs/adv_${BSN_PRE}_received_file.${BSN_EXT} 2> ./unwanted_logs/adv_${BSN_PRE}_receiver.log &
receiver_pid=$!
valgrind --leak-check=full --log-file=${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_valgrind_receiver.log \
./receiver ::1 65139 1> ${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_received_file.${BSN_EXT} \
2> ${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_receiver.log & receiver_pid=$!
cleanup()
{
......@@ -37,9 +43,10 @@ cleanup()
trap cleanup SIGINT # Kill les process en arrière plan en cas de ^-C
# On démarre le transfert
if ! valgrind --leak-check=full --log-file=./unwanted_logs/adv_valgrind_${BSN_PRE}_receiver.log ./sender -f ${FILENAME} ::1 65027 2> ./unwanted_logs/adv_${BSN_PRE}_sender.log ; then
if ! valgrind --leak-check=full --log-file=${TEST_OUTPUT_FILES}/adv_valgrind_${BSN_PRE}_receiver.log \
./sender -f ${FILENAME} ::1 65027 2> ${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_sender.log ; then
echo "Crash du sender!"
cat ./unwanted_logs/adv_${BSN_PRE}_sender.log
cat ${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_sender.log
err=1 # On enregistre l'erreur
fi
......@@ -52,7 +59,7 @@ if kill -0 $receiver_pid &> /dev/null ; then
else # On teste la valeur de retour du receiver
if ! wait $receiver_pid ; then
echo "Crash du receiver!"
cat ./unwanted_logs/adv_${BSN_PRE}_receiver.log
cat ${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_receiver.log
err=1
fi
fi
......@@ -62,12 +69,12 @@ kill -9 $link_pid
wait $link_pid 2>/dev/null
# On vérifie que le transfert s'est bien déroulé
if [[ "$(md5sum ${FILENAME} | awk '{print $1}')" != "$(md5sum ./unwanted_logs/adv_${BSN_PRE}_received_file.${BSN_EXT} | awk '{print $1}')" ]]; then
if [[ "$(md5sum ${FILENAME} | awk '{print $1}')" != "$(md5sum ${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_received_file.${BSN_EXT} | awk '{print $1}')" ]]; then
echo "Le transfert a corrompu le fichier!"
echo "Diff binaire des deux fichiers: (attendu vs produit)"
diff -C 9 <(od -Ax -t x1z ${FILENAME}) <(od -Ax -t x1z ./unwanted_logs/adv_${BSN_PRE}_received_file.${BSN_EXT})
diff -C 9 <(od -Ax -t x1z ${FILENAME}) <(od -Ax -t x1z ${TEST_OUTPUT_FILES}/adv_${BSN_PRE}_received_file.${BSN_EXT})
exit 1
else
echo -e "${GREEN}Le transfert est réussi!${NC}"
echo -e "${GREEN}The transfer has succeeded!${NC}"
exit ${err:-0} # En cas d'erreurs avant, on renvoie le code d'erreur
fi
\ No newline at end of file
......@@ -4,8 +4,10 @@
FILESIZE=""
TEST_FILES_DIR=./test_files/
rm -rf ./unwanted_logs/*
# We want our tests to always use valgrind
echo "Starting simple tests ..."
echo -e "\nStarting simple tests ...\n"
for FILENAME in "$TEST_FILES_DIR"/*
do
FILESIZE=$(stat -c%s "$FILENAME")
......@@ -18,10 +20,10 @@ do
fi
done
echo "Finished Simple tests."
echo -e "Finished Simple tests."
if [ -d linksimulator/ ]; then
echo "Starting ... advanced tests !"
echo -e "\nStarting ... advanced tests !\n"
# Now we ran advnced tests
for FILENAME in "$TEST_FILES_DIR"/*
do
......
......@@ -7,23 +7,33 @@ fi
FILENAME=$1
BASENAME=$(basename $FILENAME)
TEST_OUTPUT_FILES='unwanted_logs/simple_test'
BSNM_PRE="${BASENAME%.*}"
BSNM_EXT="${BASENAME##*.}"
GREEN='\033[0;32m'
NC='\033[0m'
# Create the logs directory
mkdir unwanted_logs 2>/dev/null
mkdir ${TEST_OUTPUT_FILES}/ 2>/dev/null
# Cleanup d'un test précédent
rm -f ./unwanted_logs/${BSNM_PRE}_received_file.${BSNM_EXT} ./unwanted_logs/valgrind_${BSNM_PRE}_receiver.log ./unwanted_logs/valgrind_${BSNM_PRE}_sender.log ./unwanted_logs/${BSNM_PRE}_sender.log ./unwanted_logs/${BSNM_PRE}_receiver.log
touch ./unwanted_logs/${BSNM_PRE}_received_file.${BSNM_EXT} ./unwanted_logs/valgrind_${BSNM_PRE}_receiver.log ./unwanted_logs/valgrind_${BSNM_PRE}_sender.log ./unwanted_logs/${BSNM_PRE}_sender.log ./unwanted_logs/${BSNM_PRE}_receiver.log
rm -f ${TEST_OUTPUT_FILES}/${BSNM_PRE}_received_file.${BSNM_EXT} \
${TEST_OUTPUT_FILES}/valgrind_${BSNM_PRE}_receiver.log \
${TEST_OUTPUT_FILES}/valgrind_${BSNM_PRE}_sender.log \
${TEST_OUTPUT_FILES}/${BSNM_PRE}_sender.log \
${TEST_OUTPUT_FILES}/${BSNM_PRE}_receiver.log
touch ${TEST_OUTPUT_FILES}/${BSNM_PRE}_received_file.${BSNM_EXT} \
${TEST_OUTPUT_FILES}/valgrind_${BSNM_PRE}_receiver.log \
${TEST_OUTPUT_FILES}/valgrind_${BSNM_PRE}_sender.log \
${TEST_OUTPUT_FILES}/${BSNM_PRE}_sender.log \
${TEST_OUTPUT_FILES}/${BSNM_PRE}_receiver.log
# On lance le receiver et capture sa sortie standard
valgrind --leak-check=full --log-file=./unwanted_logs/valgrind_${BSNM_PRE}_receiver.log ./receiver ::1 65197 1> ./unwanted_logs/${BSNM_PRE}_received_file.${BSNM_EXT} 2> ./unwanted_logs/${BSNM_PRE}_receiver.log &
receiver_pid=$!
valgrind --leak-check=full --log-file=${TEST_OUTPUT_FILES}/valgrind_${BSNM_PRE}_receiver.log \
./receiver ::1 65197 1> ${TEST_OUTPUT_FILES}/${BSNM_PRE}_received_file.${BSNM_EXT} \
2> ${TEST_OUTPUT_FILES}/${BSNM_PRE}_receiver.log & receiver_pid=$!
cleanup()
{
......@@ -34,9 +44,10 @@ cleanup()
trap cleanup SIGINT # Kill les process en arrière plan en cas de ^-C
# We start the transfer
if ! valgrind --leak-check=full --log-file=./unwanted_logs/valgrind_${BSNM_PRE}_sender.log ./sender -f ${FILENAME} ::1 65197 2> ./unwanted_logs/${BSNM_PRE}_sender.log ; then
if ! valgrind --leak-check=full --log-file=${TEST_OUTPUT_FILES}/valgrind_${BSNM_PRE}_sender.log \
./sender -f ${FILENAME} ::1 65197 2> ${TEST_OUTPUT_FILES}/${BSNM_PRE}_sender.log ; then
echo "The sender crashed!"
cat ./unwanted_logs/${BSNM_PRE}_sender.log
cat ${TEST_OUTPUT_FILES}/${BSNM_PRE}_sender.log
err=1 # On enregistre l'erreur
fi
......@@ -49,16 +60,16 @@ if kill -0 $receiver_pid &> /dev/null ; then
else # We check the return value of the receiver
if ! wait $receiver_pid ; then
echo "The receiver crashed!"
cat ./unwanted_logs/${BSNM_PRE}_receiver.log
cat ${TEST_OUTPUT_FILES}/${BSNM_PRE}_receiver.log
err=1
fi
fi
# We check that the transfer ran through properly
if [[ "$(md5sum ${FILENAME} | awk '{print $1}')" != "$(md5sum ./unwanted_logs/${BSNM_PRE}_received_file.${BSNM_EXT} | awk '{print $1}')" ]]; then
if [[ "$(md5sum ${FILENAME} | awk '{print $1}')" != "$(md5sum ${TEST_OUTPUT_FILES}/${BSNM_PRE}_received_file.${BSNM_EXT} | awk '{print $1}')" ]]; then
echo "The transfer has corrupted the file!"
echo "Diff binaire des deux fichiers: (attendu vs produit)"
diff -C 9 <(od -Ax -t x1z ${FILENAME}) <(od -Ax -t x1z ./unwanted_logs/${BSNM_PRE}_received_file.${BSNM_EXT})
diff -C 9 <(od -Ax -t x1z ${FILENAME}) <(od -Ax -t x1z ${TEST_OUTPUT_FILES}/${BSNM_PRE}_received_file.${BSNM_EXT})
exit 1
else
echo -e "${GREEN}The transfer has succeeded!${NC}"
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter