[PATCH] test-module-imports: conditionalize for Windows

Matt Harbison mharbison72 at gmail.com
Wed Apr 8 19:33:08 CDT 2015


On Wed, 08 Apr 2015 20:12:14 -0400, Augie Fackler <raf at durin42.com> wrote:

> On Mon, Apr 06, 2015 at 09:56:24PM -0400, Matt Harbison wrote:
>> # HG changeset patch
>> # User Matt Harbison <matt_harbison at yahoo.com>
>> # Date 1428371471 14400
>> #      Mon Apr 06 21:51:11 2015 -0400
>> # Node ID 2b99e04a81db2bba7b44a59ea031481da60b70d3
>> # Parent  e0fc84bf060e9c9ea69324860696e989831d76de
>> test-module-imports: conditionalize for Windows
>>
>> Windows has several more warnings than posix platforms, notably  
>> changegroup.py,
>> encoding.py, and several posix.py entries.  I have no idea how to fix  
>> them, but
>> maybe it will inspire someone who knows how, to take a look.  This also  
>> means
>> less noise in a Windows buildbot.
>>
>> diff --git a/tests/test-module-imports.t b/tests/test-module-imports.t
>> --- a/tests/test-module-imports.t
>> +++ b/tests/test-module-imports.t
>> @@ -20,6 +20,7 @@
>>  hidden by deduplication algorithm in the cycle detector, so fixing
>>  these may expose other cycles.
>>
>> +#if no-windows
>>    $ hg locate 'mercurial/**.py' | sed 's-\\-/-g' | xargs python  
>> "$import_checker"
>>    mercurial/crecord.py mixed imports
>>       stdlib:    fcntl, termios
>> @@ -40,3 +41,37 @@
>>       stdlib:    formatter
>>       relative:  config, error, scmutil, util
>>    Import cycle: mercurial.cmdutil -> mercurial.context ->  
>> mercurial.subrepo -> mercurial.cmdutil
>> +#else
>> +  $ hg locate 'mercurial/**.py' | sed 's-\\-/-g' | xargs python  
>> "$import_checker"
>> +  mercurial/changegroup.py mixed imports
>> +     stdlib:    os, struct, tempfile, zlib
>> +     relative:  bz2
>
> This one (just as an example) looks like bz2 is missing from your
> python install, or else the logic in the import checker can't dig up
> the existence of the bz2 module.

Probably the latter:

$ python
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]  
on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import bz2
>>>

>> +  mercurial/dispatch.py mixed imports
>> +     stdlib:    commands
>> +     relative:  error, extensions, fancyopts, hg, hook, util
>> +  mercurial/encoding.py mixed imports
>> +     stdlib:    locale, os
>> +     relative:  unicodedata
>> +  mercurial/fileset.py mixed imports
>> +     stdlib:    parser
>> +     relative:  error, merge, util
>> +  mercurial/posix.py mixed imports
>> +     stdlib:    errno, getpass, os, socket, stat, sys, tempfile
>> +     relative:  grp, pwd, unicodedata
>> +  mercurial/posix.py mixed imports
>> +     stdlib:    re
>> +     relative:  fcntl
>
> Same type of problem here, presumably because fcntl only exists on  
> unix-likes?

That seems right.  All of the various forum posts I found on google that  
quoted python docs for fcntl as "availability: unix", linked to dead  
python docs.  The current page [1] says "an interface to the fcntl() and  
ioctl() unix routines".

I don't mind trying to fix some of this stuff if they are real problems,  
but IDK how to interpret the output here.  The only thing I understand for  
sure is curses isn't in the list for Windows because the import is not at  
the top of the crecord module- see 01b39e821d00.

>> +  mercurial/posix.py mixed imports
>> +     stdlib:    array
>> +     relative:  termios
>> +  mercurial/revset.py mixed imports
>> +     stdlib:    parser
>> +     relative:  discovery, error, hbisect, phases, util
>> +  mercurial/templater.py mixed imports
>> +     stdlib:    parser
>> +     relative:  config, error, templatefilters, templatekw, util
>> +  mercurial/ui.py mixed imports
>> +     stdlib:    formatter
>> +     relative:  config, error, scmutil, util
>> +  Import cycle: mercurial.cmdutil -> mercurial.context ->  
>> mercurial.subrepo -> mercurial.cmdutil
>> +#endif
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at selenic.com
>> http://selenic.com/mailman/listinfo/mercurial-devel


[1] https://docs.python.org/2/library/fcntl.html


More information about the Mercurial-devel mailing list