RunTests.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/usr/bin/env bash
  2. if [ "$1" == '--help' ]; then
  3. echo "";
  4. echo " Usage: RunTests.sh [OPTIONS]";
  5. echo " or: Runtests.sh --help";
  6. echo "";
  7. echo " OPTIONS:";
  8. echo " --allow-failed=TRUE Failed tests will be ignored and execution will";
  9. echo " continue. Usefull in code coverage testing. Default";
  10. echo " value: FALSE (execution will stop when a test failed.)";
  11. echo "";
  12. exit -1;
  13. fi
  14. if [ "$1" == '--allow-failed=TRUE' ]; then
  15. ALLOW_FAILED=TRUE;
  16. else
  17. ALLOW_FAILED=FALSE;
  18. fi
  19. MD5=$(which md5sum)
  20. if [ ! $MD5 ]; then
  21. MD5='md5 -q';
  22. else
  23. MD5='md5sum';
  24. fi
  25. FILES=*.txt
  26. DOCSIS=../src/docsis
  27. KEYFILE=key
  28. ALL_TESTS=`ls -l *.txt | wc -l`;
  29. for f in $FILES
  30. do
  31. let i++;
  32. echo "Progress: $i / $ALL_TESTS";
  33. TEST=$(echo $f | cut -f1 -d.)
  34. $DOCSIS -e $TEST.txt $KEYFILE $TEST.cm.new
  35. if [ ! -f $TEST.cm.new ]; then
  36. echo "Test $TEST failed to create CM file on first pass.";
  37. if [ $ALLOW_FAILED = FALSE ]; then
  38. exit -1;
  39. fi
  40. fi
  41. MD5SUM_1=$($MD5 $TEST.cm)
  42. MD5SUM_1_array=($MD5SUM_1)
  43. MD5SUM_2=$($MD5 $TEST.cm.new)
  44. MD5SUM_2_array=($MD5SUM_2)
  45. if [ "${MD5SUM_1_array[0]}" != "${MD5SUM_2_array[0]}" ]; then
  46. echo "Test $TEST created a wrong CM file on first pass.";
  47. if [ $ALLOW_FAILED = FALSE ]; then
  48. exit -1;
  49. fi
  50. fi
  51. $DOCSIS -d $TEST.cm.new > $TEST.conf.new
  52. if [ ! -f $TEST.conf.new ]; then
  53. echo "Test $TEST failed to create a conf file on second pass.";
  54. if [ $ALLOW_FAILED = FALSE ]; then
  55. exit -1;
  56. fi
  57. fi
  58. MD5SUM_1=$($MD5 $TEST.conf)
  59. MD5SUM_1_array=($MD5SUM_1)
  60. MD5SUM_2=$($MD5 $TEST.conf.new)
  61. MD5SUM_2_array=($MD5SUM_2)
  62. if [ "${MD5SUM_1_array[0]}" != "${MD5SUM_2_array[0]}" ]; then
  63. echo "Test $TEST created a wrong CONF file on second pass.";
  64. if [ $ALLOW_FAILED = FALSE ]; then
  65. exit -1;
  66. fi
  67. fi
  68. $DOCSIS -e $TEST.conf.new $KEYFILE $TEST.cm.new
  69. if [ ! -f $TEST.cm.new ]; then
  70. echo "Test $TEST failed to create CM file on third pass.";
  71. if [ $ALLOW_FAILED = FALSE ]; then
  72. exit -1;
  73. fi
  74. fi
  75. MD5SUM_1=$($MD5 $TEST.cm)
  76. MD5SUM_1_array=($MD5SUM_1)
  77. MD5SUM_2=$($MD5 $TEST.cm.new)
  78. MD5SUM_2_array=($MD5SUM_2)
  79. if [ "${MD5SUM_1_array[0]}" != "${MD5SUM_2_array[0]}" ]; then
  80. echo "Test $TEST created a wrong CM file on third pass.";
  81. if [ $ALLOW_FAILED = FALSE ]; then
  82. exit -1;
  83. fi
  84. fi
  85. rm $TEST*.new
  86. done