4
0

testmake.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #!/bin/sh
  2. #
  3. # author: Angus Salkeld (ahsalkeld@gmail.com)
  4. #
  5. # usage:
  6. # run this from the base directory of corosync
  7. #
  8. SRCDIR=$(pwd)
  9. ALL_TESTS="1 2 3 4"
  10. MAKE_LOG=/tmp/corosync-make-test.log
  11. test_1()
  12. {
  13. TEST="[1] simple make"
  14. rm -f $SRCDIR/make_o_path
  15. make >$MAKE_LOG 2>&1
  16. return $?
  17. }
  18. make_clean()
  19. {
  20. if [ -f $SRCDIR/make_o_path ]
  21. then
  22. make $(cat $SRCDIR/make_o_path) clean >$MAKE_LOG 2>&1
  23. RES=$?
  24. else
  25. if [ -n "$BUILD_DIR" ]
  26. then
  27. pushd $BUILD_DIR >/dev/null
  28. make -f $SRCDIR/Makefile clean >$MAKE_LOG 2>&1
  29. RES=$?
  30. popd >/dev/null
  31. else
  32. make clean >$MAKE_LOG 2>&1
  33. RES=$?
  34. fi
  35. fi
  36. return $RES
  37. }
  38. test_2()
  39. {
  40. rm -f $SRCDIR/make_o_path
  41. TEST="[2] make from exec dir"
  42. pushd $SRCDIR/exec >/dev/null
  43. make >$MAKE_LOG 2>&1
  44. RES=$?
  45. popd >/dev/null
  46. return $RES
  47. }
  48. test_3()
  49. {
  50. local BUILD_DIR=/tmp/corosync-make-test
  51. echo "O=$BUILD_DIR" > $SRCDIR/make_o_path
  52. TEST="[3] make objects separately from the source"
  53. rm -rf $BUILD_DIR
  54. make O=$BUILD_DIR >$MAKE_LOG 2>&1
  55. unset BUILD_DIR
  56. return $?
  57. }
  58. test_4()
  59. {
  60. BUILD_DIR=/tmp/corosync-make-test
  61. rm -f $SRCDIR/make_o_path
  62. TEST="[4] make -f SRCDIR/Makefile from the builddir"
  63. rm -rf $BUILD_DIR
  64. mkdir -p $BUILD_DIR
  65. pushd $BUILD_DIR >/dev/null
  66. make -f $SRCDIR/Makefile >$MAKE_LOG 2>&1
  67. RES=$?
  68. popd >/dev/null
  69. return $RES
  70. }
  71. if [ -n "$1" ]
  72. then
  73. TESTS_TO_RUN=$1
  74. else
  75. TESTS_TO_RUN=$ALL_TESTS
  76. fi
  77. for t in $TESTS_TO_RUN
  78. do
  79. test_$t
  80. if [ $? -ne 0 ]
  81. then
  82. echo "$0 $TEST [failed]."
  83. cat $MAKE_LOG
  84. exit 1
  85. else
  86. echo "$0 $TEST [passed]."
  87. fi
  88. make_clean
  89. if [ $? -ne 0 ]
  90. then
  91. echo "$0 $TEST [failed to clean]."
  92. cat $MAKE_LOG
  93. exit 1
  94. else
  95. echo "$0 $TEST [cleaned]."
  96. fi
  97. done
  98. echo $0 all make tests passed!
  99. exit 0