[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Use subprocess.Popen for executing commands in cmdline tests

From: Daniel Shahaf <d.s_at_daniel.shahaf.co.il>
Date: Fri, 18 Apr 2008 14:08:56 +0300 (Jerusalem Daylight Time)

jeremy hinds wrote on Wed, 9 Apr 2008 at 22:49 -0600:
> 2008/4/8 jeremy hinds <jeremy.hinds_at_gmail.com>:
> > Thanks for clearing that up. While rewriting the patch to handle
> > universal_newlines and shell=False, another question came up.
> >
> > I made universal_newlines apply on any platform rather than just
> > Windows, and that seemed to work fine on everything except
> > import_tests.import_eol_style(). The problem is that
> > run_and_verify_svn() has text mode hard-coded in it, so the "\r\n"
> > sequences were converted to "\n". (Honestly, I don't understand how
> > that test worked accurately on Windows before.)
> >
> > The question is whether it is better to preserve old behavior by never
> > using universal_newlines on posix, or should I add a "binary_mode"
> > parameter to run_and_verify_svn2()?
> >
>
> I decided err on the side of flexibility and add a "binary_mode" param
> to run_and_verify_svn2(). So here is my new and improved (and
> hopefully good) patch. Again, I've only been able to test this on
> Linux.
>
> [[[
> In cmdline tests, use subprocess.Popen for executing commands to allow
> support for exit-code checks on both Windows and posix systems. This makes
> the test suite require Python version >= 2.4.
>

Ping. Has anyone reviewed the binary_mode changes? Could someone verify
that the patch works on Windows too?

Thanks,

Daniel

> * subversion/tests/cmdline/svntest/main.py
> (global): Import subprocess instead of popen2. Remove variable
> "platform_with_popen3_class".
> (_quote_arg): Removed, since commands + args to open_pipe are now lists.
> (open_pipe): Replace "mode" character parameter with a "binary_mode" boolean
> value. Use subprocess.Popen for spawning the child process.
> (wait_on_pipe): Interpret the return value of wait() according to
> subprocess.Popen semantics.
> (spawn_process, copy_repos): When calling open_pipe, pass the command as
> a list and binary_mode as a boolean.
> (run_svn2): New, like run_svn but with a "binary_mode" boolean param.
>
> * subversion/tests/cmdline/svntest/actions.py
> (run_and_verify_svnlook, run_and_verify_svnlook2, run_and_verify_svnadmin,
> run_and_verify_svnadmin2, run_and_verify_svnversion,
> run_and_verify_svnversion2,
> run_and_verify_svn_match_any, run_and_verify_svn_match_any2):
> Remove the caveat comment stating that exit-code checks are skipped
> for some platforms.
> (run_and_verify_svn): Remove the caveat comment stating that exit-code
> checks are skipped for some platforms. Pass binary_mode=0 to
> run_and_verify_svn2.
> (run_and_verify_svn2): Remove the caveat comment stating that exit-code
> checks are skipped for some platforms. Add a binary_mode boolean
> parameter. Replace call to run_svn with run_svn2.
>
> * subversion/tests/cmdline/import_tests.py
> (import_eol_style): Call run_and_verify_svn2 with binary_mode=1.
>
> * subversion/tests/cmdline/cat_tests.py,
> subversion/tests/cmdline/lock_tests.py,
> subversion/tests/cmdline/stat_tests.py:
> Pass binary_mode parameter to run_and_verify_svn2.
>
> ]]]
>
>
> Thanks,
> Jeremy
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-04-18 13:09:31 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.