[PATCH 1 of 2] hghave: enable 'serve' on Windows

Matt Harbison mharbison72 at gmail.com
Mon May 8 22:53:04 EDT 2017


On Mon, 08 May 2017 01:09:28 -0400, Adrian Buehlmann <adrian at cadifra.com>  
wrote:

> On 2017-05-08 06:39, Matt Harbison wrote:
>> # HG changeset patch
>> # User Matt Harbison <matt_harbison at yahoo.com>
>> # Date 1494183520 14400
>> #      Sun May 07 14:58:40 2017 -0400
>> # Node ID 36d9a659b9d76837faaf73fde3f5c5455231c2f9
>> # Parent  c6cbd0b66465bcaa41f03c9498555f04d3dfbe7c
>> hghave: enable 'serve' on Windows
>>
>> I've been using a local hghaveaddon.py to enable this for a couple of  
>> months
>> with reasonable success, and 'killdaemons' is already enabled on  
>> Windows.
>> There's one failure[1] in test-http-proxy.t that this adds, which I  
>> can't figure
>> out.  On occasion, there is also a stacktrace at the end of a run:
>>
>> Errored test-serve.t: Traceback (most recent call last):
>>   File "./run-tests.py", line 724, in run
>>     self.tearDown()
>>   File "./run-tests.py", line 805, in tearDown
>>     killdaemons(entry)
>>   File "./run-tests.py", line 540, in killdaemons
>>     logfn=vlog)
>>   File "c:\Users\Matt\Projects\hg\tests\killdaemons.py", line 94, in  
>> killdaemons
>>     os.unlink(pidfile)
>> WindowsError: [Error 32] The process cannot access the file because it  
>> is being
>>               used by another process:  
>> '...\\hgtests.gubapm\\child449\\daemon.pids'
>
> https://www.mercurial-scm.org/wiki/UnlinkingFilesOnWindows
>
>> The affected test(s) vary from run to run (and most times the error  
>> doesn't
>> occur).  The common thread is that the affected tests are missing a  
>> killdaemons
>> call.
>>
>> Still, it seems better to enable a whole class of tests by default, to  
>> catch
>> actual regressions when they occur.
>>
>> [1]  
>> https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-April/096987.html

Ah, I knew there was a trick, thanks.  Since the next thing that happens  
is to recursively delete the test directory, I'm not sure if _that_ step  
will blow up.  When I tried adding 'from mercurial import util' to  
killdaemons.py, it says 'No module named mercurial'.  Other test/*.py  
files do this, so I'm not sure what the issue is.


More information about the Mercurial-devel mailing list