tests/run-tests
changeset 2085 f71e9656524f
parent 2069 15ec724ba351
child 2163 278f9b13c39a
equal deleted inserted replaced
2084:d66278012853 2085:f71e9656524f
     1 #!/bin/sh -e
     1 #!/bin/sh -e
       
     2 #
       
     3 # environment variables:
       
     4 #
       
     5 # TEST_COVERAGE - set non-empty if you want to print test coverage report
       
     6 # COVERAGE_STDLIB - set non-empty to report coverage of standard library
     2 
     7 
     3 LANG="C"; export LANG
     8 LANG="C"; export LANG
     4 LC_CTYPE="C"; export LC_CTYPE
     9 LC_CTYPE="C"; export LC_CTYPE
     5 LC_NUMERIC="C"; export LC_NUMERIC
    10 LC_NUMERIC="C"; export LC_NUMERIC
     6 LC_TIME="C"; export LC_TIME
    11 LC_TIME="C"; export LC_TIME
    17 TZ=GMT; export TZ
    22 TZ=GMT; export TZ
    18 HGEDITOR=true; export HGEDITOR
    23 HGEDITOR=true; export HGEDITOR
    19 HGMERGE=true; export HGMERGE
    24 HGMERGE=true; export HGMERGE
    20 HGUSER="test"; export HGUSER
    25 HGUSER="test"; export HGUSER
    21 HGRCPATH=""; export HGRCPATH
    26 HGRCPATH=""; export HGRCPATH
       
    27 OS=`uname`
       
    28 
       
    29 case "$OS" in
       
    30   HP-UX|SunOS)
       
    31     DIFFOPTS=
       
    32     ;;
       
    33   *)
       
    34     DIFFOPTS=-u
       
    35     ;;
       
    36 esac
    22 
    37 
    23 if [ `echo -n HG` = "-n HG" ]
    38 if [ `echo -n HG` = "-n HG" ]
    24 then
    39 then
    25     ECHO_N=echo
    40     ECHO_N=echo
    26     NNL="\c"
    41     NNL="\c"
    62     cat tests/install.err
    77     cat tests/install.err
    63     exit 1
    78     exit 1
    64 fi
    79 fi
    65 cd "$TESTDIR"
    80 cd "$TESTDIR"
    66 
    81 
    67 BINDIR="$INST/bin"
    82 BINDIR="$INST/bin"; export BINDIR
       
    83 if [ -n "$TEST_COVERAGE" ]; then
       
    84     COVERAGE_FILE="$TESTDIR/.coverage"; export COVERAGE_FILE
       
    85     rm -f "$COVERAGE_FILE"
       
    86     mv "$BINDIR/hg" "$BINDIR/hg.py"
       
    87     {
       
    88         echo '#!/bin/sh'
       
    89         echo "exec \"${PYTHON-python}\" \"$TESTDIR/coverage.py\"" \
       
    90             "-x \"$BINDIR/hg.py\" \"\$@\""
       
    91     } > "$BINDIR/hg"
       
    92     chmod 700 "$BINDIR/hg"
       
    93 fi
       
    94     
    68 PATH="$BINDIR:$PATH"; export PATH
    95 PATH="$BINDIR:$PATH"; export PATH
    69 if [ -n "$PYTHON" ]; then
    96 if [ -n "$PYTHON" ]; then
    70     {
    97     {
    71         echo "#!/bin/sh"
    98         echo "#!/bin/sh"
    72         echo "exec \"$PYTHON"'" "$@"'
    99         echo "exec \"$PYTHON"'" "$@"'
    99 	echo
   126 	echo
   100 	echo "$1 generated unexpected output:"
   127 	echo "$1 generated unexpected output:"
   101 	cat "$ERR"
   128 	cat "$ERR"
   102 	fail=1
   129 	fail=1
   103     elif [ -r "$OUTOK" ]; then
   130     elif [ -r "$OUTOK" ]; then
   104 	if diff -u "$OUTOK" "$OUT" > /dev/null; then
   131 	if diff $DIFFOPTS "$OUTOK" "$OUT" > /dev/null; then
   105 	    : no differences
   132 	    : no differences
   106 	else
   133 	else
   107 	    cp "$OUT" "$ERR"
   134 	    cp "$OUT" "$ERR"
   108 	    echo
   135 	    echo
   109 	    echo "$1 output changed:"
   136 	    echo "$1 output changed:"
   110 	    diff -u "$OUTOK" "$ERR" || true
   137 	    diff $DIFFOPTS "$OUTOK" "$ERR" || true
   111 	    fail=1
   138 	    fail=1
   112 	fi
   139 	fi
   113     fi
   140     fi
   114 
   141 
   115     cd "$TESTDIR"
   142     cd "$TESTDIR"
   151 done
   178 done
   152 
   179 
   153 echo
   180 echo
   154 echo "Ran $tests tests, $failed failed."
   181 echo "Ran $tests tests, $failed failed."
   155 
   182 
       
   183 if [ -n "$TEST_COVERAGE" ]; then
       
   184     unset PYTHONPATH
       
   185     $ECHO_N "$BINDIR,$TESTDIR,$HGTMP/test-," > "$HGTMP/omit"
       
   186     if [ -z "$COVERAGE_STDLIB" ]; then
       
   187         "${PYTHON-python}" -c 'import sys; print ",".join(sys.path)' \
       
   188             >> "$HGTMP/omit"
       
   189     fi
       
   190     cd "$PYTHONDIR"
       
   191     "${PYTHON-python}" "$TESTDIR/coverage.py" -r --omit="`cat \"$HGTMP/omit\"`"
       
   192 fi
       
   193 
   156 if [ $failed -gt 0 ] ; then
   194 if [ $failed -gt 0 ] ; then
   157     exit 1
   195     exit 1
   158 fi
   196 fi
   159 exit 0
   197 exit 0