On Fri, Aug 22, 2008 at 09:31:07AM +1000, Ben Finney wrote: > On 22-Aug-2008, Sami Liedes wrote: > > If the profiled python script uses any .py files under > > /usr/lib/python$VER/, the command "python-coverage -a" tries to write > > in that directory (and if run as root, probably would succeed): > > Yes, that's what the '-a' option is documented as doing. Its > documentation even gives an explicit way to avoid the behaviour you're > seeing: the '-d' option to specify a different directory for writing > the files.
Ah, in that case it's a man page bug. The man page doesn't mention -d. Also I'd say it's somewhat surprising that it does it also for system-provided files (definitely nothing in the man page hints that it does): ------------------------------------------------------------ SYNOPSIS python-coverage -x module.py [ARG...] python-coverage -e python-coverage -r [-m] python-coverage -a [file...] [...] DESCRIPTION python-coverage executes a Python program and measures which of its statements are executed and which are not. It stores the information in the file .coverage in the current working ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ directory. ^^^^^^^^^ OPTIONS -e Erase the .coverage file. -x Execute a Python module, giving it the remaining command line arguments. -r Produce a coverage report. -m With -r, show the line numbers that were missed by the execution. -a Annotate source files. For each source file foo, produce foo,cover, with executed lines prefixed by ">" and non-executed by "!". --help Produce a help summary. It might be more helpful than this manual page. > ===== > $ python-coverage --help > […] > coverage.py -a [-d dir] [-o dir1,dir2,...] FILE1 FILE2 ... > Make annotated copies of the given files, marking statements that > are executed with > and statements that are missed with !. With > the -d option, make the copies in that directory. Without the -d > option, make each copy in the same directory as the original. > ===== Didn't try that since I looked at the man page :) Sami -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]