Differences between revisions 1 and 7 (spanning 6 versions)
Revision 1 as of 2006-07-24 20:53:45
Size: 354
Editor: mpm
Comment:
Revision 7 as of 2008-04-30 11:41:04
Size: 2230
Editor: abuehl
Comment: +Notes
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
There are a few possible ways to make our test suite work on Windows: == Overview ==
Line 3: Line 3:
- convert all test scripts to Python
- write parallel test .BAT files for Windows
- write a simple portable shell
Mercurial test suite is a combination of shell scripts with reference outputs and a few python scripts, unusable on a pure Windows platform. [http://hg.intevation.org/beta/mercurial/pmezard/pysh/ pysh] is a unix shell implementation in python designed to run as many tests as possible. While running almost 90% of the test suite, the implementation suffers of the following limitations:
Line 7: Line 5:
The shell approach is preferable as it means there's no duplication of tests and tests remain easy for end users to write. Thoughts on building a shell at PySh.  * Many utilities are still to be implemented or replaced, which explains why Cygwin is required.
 * Program outputs like filenames and system messages are hard to simulate. Current solution is to patch the tests to rewrite the output as expected. Two MQ patch queues are currently maintained on top of "crew" and "crew-stable" repositories.
 * Asynchronous lists are supported, but kill sometimes refuses to kill and the test is stuck waiting for a process to complete. This is pretty rare though.
 * A couple of tests just cannot be run on Windows platforms for FIFOs do not exist or unix like permissions are not supported. A mechanism to skip them is yet to be written.


== Setup ==

1. Setup [http://hg.intevation.org/beta/mercurial/pmezard/pysh/ pysh] and its dependencies according to README instructions.

2. Clone target "crew" or "crew-stable" (see CrewRepository).

3. Clone the related patch queue from [http://hg.intevation.org/beta/mercurial/pmezard/crew-stable-w32.mq/ crew-stable-w32.mq] or [http://hg.intevation.org/beta/mercurial/pmezard/crew-w32.mq/ crew-w32.mq] and apply it. Both queues are tagged with latest applied Mercurial revision. They are likely to apply on children ones as well, tests evolve rather slowly.

4. Run tests as usual with "run-tests.py" or using pysh "testhg.py" test runner (will require slight path editing).

Few people actually run this procedure and you are likely to encounter setup issues. Please do not give up ! Do not hesitate to send bug reports or suggestions to the author. This tool has been used for almost a year over several Mercurial releases and has proven quite reliable.

----
=== Notes ===
Relevant mailing list threads:
 * http://selenic.com/pipermail/mercurial-devel/2008-January/004403.html
----
CategoryWindows CategoryTesting

Overview

Mercurial test suite is a combination of shell scripts with reference outputs and a few python scripts, unusable on a pure Windows platform. [http://hg.intevation.org/beta/mercurial/pmezard/pysh/ pysh] is a unix shell implementation in python designed to run as many tests as possible. While running almost 90% of the test suite, the implementation suffers of the following limitations:

  • Many utilities are still to be implemented or replaced, which explains why Cygwin is required.
  • Program outputs like filenames and system messages are hard to simulate. Current solution is to patch the tests to rewrite the output as expected. Two MQ patch queues are currently maintained on top of "crew" and "crew-stable" repositories.
  • Asynchronous lists are supported, but kill sometimes refuses to kill and the test is stuck waiting for a process to complete. This is pretty rare though.
  • A couple of tests just cannot be run on Windows platforms for FIFOs do not exist or unix like permissions are not supported. A mechanism to skip them is yet to be written.

Setup

1. Setup [http://hg.intevation.org/beta/mercurial/pmezard/pysh/ pysh] and its dependencies according to README instructions.

2. Clone target "crew" or "crew-stable" (see CrewRepository).

3. Clone the related patch queue from [http://hg.intevation.org/beta/mercurial/pmezard/crew-stable-w32.mq/ crew-stable-w32.mq] or [http://hg.intevation.org/beta/mercurial/pmezard/crew-w32.mq/ crew-w32.mq] and apply it. Both queues are tagged with latest applied Mercurial revision. They are likely to apply on children ones as well, tests evolve rather slowly.

4. Run tests as usual with "run-tests.py" or using pysh "testhg.py" test runner (will require slight path editing).

Few people actually run this procedure and you are likely to encounter setup issues. Please do not give up ! Do not hesitate to send bug reports or suggestions to the author. This tool has been used for almost a year over several Mercurial releases and has proven quite reliable.


Notes

Relevant mailing list threads:


CategoryWindows CategoryTesting

WindowsTestingPlan (last edited 2017-12-01 03:04:07 by JunWu)