regress.sh
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:3k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. #!/bin/sh
  2. # $Header: /usr/local/cvsroot/pgsql/src/test/regress/regress.sh,v 1.31 1999/07/09 17:57:46 momjian Exp $
  3. #
  4. if [ $# -eq 0 ]
  5. then
  6. echo "Syntax: $0 <portname> [extra-tests]"
  7. exit 1
  8. fi
  9. portname=$1
  10. shift
  11. extratests="$*"
  12. if [ x$portname = "xwin" ]
  13. then
  14. HOST="-h localhost"
  15. else
  16. HOST=""
  17. fi
  18. if echo 'c' | grep -s c >/dev/null 2>&1
  19. then
  20. ECHO_N="echo -n"
  21. ECHO_C=""
  22. else
  23. ECHO_N="echo"
  24. ECHO_C='c'
  25. fi
  26. if [ -d ./obj ]; then
  27. cd ./obj
  28. fi
  29. PGTZ="PST8PDT"; export PGTZ
  30. PGDATESTYLE="Postgres,US"; export PGDATESTYLE
  31. #FRONTEND=monitor
  32. FRONTEND="psql $HOST -n -e -q"
  33. SYSTEM=`../../config.guess | awk -F- '{ split($3,a,/[0-9]/); printf"%s-%s", $1, a[1] }'`
  34. echo "=============== Notes...                              ================="
  35. echo "postmaster must already be running for the regression tests to succeed."
  36. echo "The time zone is now set to PST8PDT explicitly by this regression test"
  37. echo " client frontend. Please report any apparent problems to"
  38. echo "   ports@postgresql.org"
  39. echo "See regress/README for more information."
  40. echo ""
  41. echo "=============== destroying old regression database... ================="
  42. destroydb $HOST regression
  43. echo "=============== creating new regression database...   ================="
  44. if [ -n "$MULTIBYTE" ];then
  45. mbtests=`echo $MULTIBYTE | tr "[A-Z]" "[a-z]"`
  46. PGCLIENTENCODING="$MULTIBYTE"
  47. export PGCLIENTENCODING
  48. ENCODINGOPT="-E $MULTIBYTE"
  49. else
  50. mbtests=""
  51. unset PGCLIENTENCODING
  52. ENCODINGOPT=""
  53. fi
  54. createdb $ENCODINGOPT $HOST regression
  55. if [ $? -ne 0 ]; then
  56.      echo createdb failed
  57.      exit 1
  58. fi
  59. echo "=============== installing PL/pgSQL...                ================="
  60. createlang $HOST plpgsql regression
  61. if [ $? -ne 0 -a $? -ne 2 ]; then
  62.      echo createlang failed
  63.      exit 1
  64. fi
  65. echo "=============== running regression queries...         ================="
  66. echo "" > regression.diffs
  67. for i in `cat sql/tests` $mbtests $extratests
  68. do
  69. $ECHO_N "${i} .. " $ECHO_C
  70. $FRONTEND regression < sql/${i}.sql > results/${i}.out 2>&1
  71. if [ -f expected/${i}-${SYSTEM}.out ]
  72. then
  73. EXPECTED="expected/${i}-${SYSTEM}.out"
  74. else
  75. EXPECTED="expected/${i}.out"
  76. fi
  77.   
  78. if [ `diff -w ${EXPECTED} results/${i}.out | wc -l` -ne 0 ]
  79. then
  80. ( diff -wC3 ${EXPECTED} results/${i}.out; 
  81. echo "";  
  82. echo "----------------------"; 
  83. echo "" ) >> regression.diffs
  84. echo failed
  85. else
  86. echo ok
  87. fi
  88. done
  89. exit 0
  90. echo "=============== running error queries ...             ================="
  91. $FRONTEND regression < errors.sql
  92. # this will generate error result code
  93. #set this to 1 to avoid clearing the database
  94. debug=0
  95. if test "$debug" -eq 1
  96. then
  97. echo Skipping clearing and deletion of the regression database
  98. else
  99. echo "=============== clearing regression database...       ================="
  100. $FRONTEND regression < destroy.sql
  101. if [ $? -ne 0 ]; then
  102.      echo the destroy script has an error
  103.      exit 1
  104. fi
  105. exit 0
  106. echo "=============== destroying regression database...     ================="
  107. destroydb regression
  108. if [ $? -ne 0 ]; then
  109.      echo destroydb failed
  110.      exit 1
  111. fi
  112. exit 0
  113. fi