test_cocktail_02 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/bin/bash
  2. echo "Test 02: 2 compilations dans le même dossier, projets différents"
  3. echo "Les deux doivent correctement se dérouler"
  4. if test "$TRAVIS" = "true";
  5. then
  6. URL_FILE=url_test.pub.txt
  7. else
  8. URL_FILE=url_test.priv.txt
  9. fi
  10. if test -r "$URL_FILE";
  11. then
  12. URL_BASE=$(head -n1 "$URL_FILE")
  13. URL_GARDE=$(tail -n1 "$URL_FILE")
  14. else
  15. echo "'$URL_FILE' introuvable"
  16. exit 1
  17. fi
  18. # pids conserve la liste des pids
  19. # retcode conserve le code retour de chaque pid une fois terminé
  20. handle_child() {
  21. local tmp=()
  22. for((i=0;i<${#pids[@]};++i));
  23. do
  24. if test ! -d /proc/${pids[i]};
  25. then
  26. wait ${pids[i]}
  27. retcode[${pids[i]}]=$?
  28. else
  29. tmp+=(${pids[i]})
  30. fi
  31. done
  32. pids=(${tmp[@]})
  33. }
  34. set -o monitor
  35. trap "handle_child" CHLD
  36. # Start background processes
  37. ./cocktail -v \
  38. -d MonDossier \
  39. -p Abro2 \
  40. -b "$URL_BASE" \
  41. -g "$URL_GARDE" &
  42. pids+=($!)
  43. ./cocktail -v \
  44. -d MonDossier \
  45. -p Abro3 \
  46. -b "$URL_BASE" \
  47. -g "$URL_GARDE" &
  48. pids+=($!)
  49. # Wait until all background processes are stopped
  50. while [ ${#pids[@]} -gt 0 ];
  51. do
  52. echo "WAITING FOR: ${pids[@]}";
  53. sleep 2;
  54. done
  55. echo STOPPED
  56. # affichage des code retour et generation de la chaine de test
  57. for pid in "${!retcode[@]}"
  58. do
  59. statusstring="$statusstring $pid=${retcode[$pid]}"
  60. retcodestr="${retcodestr}${retcode[$pid]}"
  61. done
  62. echo $statusstring
  63. if test $retcodestr -eq "00" -o $retcodestr -eq "00";
  64. then
  65. echo "Test réussi"
  66. echo "Les deux processus se sont terminés en code 0"
  67. exit 0
  68. else
  69. echo "Test échoué."
  70. echo "Les deux processus doivent se terminer en code 0"
  71. exit 1
  72. fi