Staging
v0.8.1
https://github.com/python/cpython
Revision 1742e401c4d76754e901e5cb2e4e9db86964999c authored by Benjamin Peterson on 30 November 2008, 22:15:29 UTC, committed by Benjamin Peterson on 30 November 2008, 22:15:29 UTC
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r67442 | jeremy.hylton | 2008-11-28 19:09:35 -0600 (Fri, 28 Nov 2008) | 18 lines

  Send HTTP headers and message body in a single send() call.

  This change addresses part of issue 4336.

  Change endheaders() to take an optional message_body argument
  that is sent along with the headers.  Change xmlrpclib and
  httplib's other methods to use this new interface.

  It is more efficient to make a single send() call, which should
  get the entire client request into one packet (assuming it is
  smaller than the MTU) and will avoid the long pause for delayed
  ack following timeout.

  Also:
  - Add a comment about the buffer size for makefile().
  - Extract _set_content_length() method and fix whitespace issues there.
........
1 parent 45a6b9f
Raw File
Tip revision: 1742e401c4d76754e901e5cb2e4e9db86964999c authored by Benjamin Peterson on 30 November 2008, 22:15:29 UTC
Merged revisions 67442 via svnmerge from
Tip revision: 1742e40
runtests.sh
#!/bin/bash

HELP="Usage: ./runtests.py [-h] [-x] [flags] [tests]

Runs each unit test independently, with output directed to a file in
OUT/<test>.out.  If no tests are given, all tests are run; otherwise,
only the specified tests are run, unless -x is also given, in which
case all tests *except* those given are run.

Standard output shows the name of the tests run, with 'BAD' or
'SKIPPED' added if the test didn't produce a positive result.  Also,
three files are created, named 'BAD', 'GOOD' and 'SKIPPED', to which
are written the names of the tests categorized by result.

Flags (arguments starting with '-') are passed transparently to
regrtest.py, except for -x, which is processed here."

# Choose the Python binary.
case `uname` in
Darwin) PYTHON=./python.exe;;
CYGWIN*) PYTHON=./python.exe;;
*)      PYTHON=./python;;
esac

PYTHON="$PYTHON -bb"

# Unset PYTHONPATH, just to be sure.
unset PYTHONPATH

# Create the output directory if necessary.
mkdir -p OUT

# Empty the summary files.
>GOOD
>BAD
>SKIPPED

# Process flags (transparently pass these on to regrtest.py)
FLAGS=""
EXCEPT=""
while :
do
    case $1 in
    -h|--h|-help|--help) echo "$HELP"; exit;;
    --) FLAGS="$FLAGS $1"; shift; break;;
    -x) EXCEPT="$1"; shift;;
    -*) FLAGS="$FLAGS $1"; shift;;
    *)  break;;
    esac
done

# Compute the list of tests to run.
case "$#$EXCEPT" in
0) 
    TESTS=`(cd Lib/test; ls test_*.py | sed 's/\.py//')`
    ;;
*-x)
    PAT="^(`echo $@ | sed 's/\.py//' | sed 's/ /|/'`)$"
    TESTS=`(cd Lib/test; ls test_*.py | sed 's/\.py//' | egrep -v "$PAT")`
    ;;
*)
    TESTS="$@"
    ;;
esac

# Run the tests.
for T in $TESTS
do
    echo -n $T
    if   case $T in
         *curses*)
	     echo
	     $PYTHON -E Lib/test/regrtest.py $FLAGS $T 2>OUT/$T.out
	     ;;
         *)  $PYTHON -E Lib/test/regrtest.py $FLAGS $T >OUT/$T.out 2>&1;;
         esac
    then
        if grep -q "1 test skipped:" OUT/$T.out
        then
            echo " SKIPPED"
            echo $T >>SKIPPED
        else
            echo
            echo $T >>GOOD
        fi
    else
        echo " BAD"
        echo $T >>BAD
    fi
done

# Summarize results
wc -l BAD GOOD SKIPPED
back to top