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

Augie Fackler raf at durin42.com
Wed Apr 8 19:34:42 CDT 2015


On Apr 8, 2015, at 8:33 PM, Matt Harbison <mharbison72 at gmail.com> wrote:

> 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
>>>> 

So, the thing to do (if possible) is figure out why, or just hack the import checker to know that bz2 is always a builtin.

>>> +  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.

Easy fix is to move re and fcntl imports to different lines.

> 
>>> +  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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20150408/96d921d4/attachment.pgp>


More information about the Mercurial-devel mailing list