#730 closed defect (fixed)

unify Windows and non-Windows "make quicktest"

Reported by: zooko Owned by: zooko
Priority: minor Milestone: 1.7.0
Component: dev-infrastructure Version: 1.4.1
Keywords: windows test cleanup Cc:
Launchpad Bug:

Description (last modified by warner)

8e2506675355ddaf improved "make quicktest" on non-Windows and left the old code in place on Windows (by branching on if sys.platform == "win32"). While I appreciate the fact that Brian wanted to avoid changing behavior that he wasn't going to test, I think it is important to have as few if sys.platform == "win32" in the code as possible, so I intend to test this behavior on Windows and hopefully just remove the if.

Change History (7)

comment:1 Changed at 2009-06-09T23:04:03Z by warner

  • Description modified (diff)

(fixed minor typo in description)

Sounds good to me.

comment:2 Changed at 2009-11-08T02:57:45Z by davidsarah

os.execve has different behaviour on Windows; it doesn't replace the current process. So you at least need a sys.exit(0) after os.execve.

comment:3 Changed at 2009-11-08T03:21:30Z by davidsarah

Actually I'm mistaken; although there is no direct equivalent to exec on Windows, os.execve does exit automatically, so it's close enough.

comment:4 Changed at 2010-02-27T20:06:57Z by davidsarah

  • Keywords windows test cleanup added; win32 removed
  • Milestone changed from undecided to 1.7.0

comment:5 Changed at 2010-06-17T04:33:27Z by zooko

  • Milestone changed from 1.7.0 to eventually

comment:6 Changed at 2011-01-16T20:01:54Z by davidsarah

  • Milestone changed from eventually to 1.7.0
  • Resolution set to fixed
  • Status changed from new to closed

This was fixed in 2a51a7bb900d512f.

(On the ticket1306 branch, make quicktest no longer uses misc/build_helpers/run-with-pythonpath.py in any case, and neither does anything else. I'll open a new ticket to remove it.)

comment:7 Changed at 2011-01-17T03:49:54Z by davidsarah

Actually for the use in make quicktest and make quicktest-coverage, it was incorrect to make the change in 2a51a7bb900d512f (I was wrong about that in comment:4), because it would have caused the make command to exit leaving the test running. Probably no-one noticed because they don't use the Makefile on Windows, since it requires gmake.

Anyway, [4927/ticket1306] fixes that, because bin\tahoe.pyscript doesn't use os.execve. The optimization that was made in 8e2506675355ddaf is applicable to bin/tahoe, but it would have to fall back to subprocess.call on Windows. (This optimization should not be made in 1.8.2 since it is a potentially destabilizing change. I'd rather get rid of the extra subprocess completely on all platforms by munging sys.path instead of setting PYTHONPATH.)

Note: See TracTickets for help on using tickets.