Пример #1
0
    def test_get_versions(self):

        # get_versions calls distutils.spawn.find_executable on
        # 'gcc', 'ld' and 'dllwrap'
        self.assertEqual(get_versions(), (None, None, None))

        # Let's fake we have 'gcc' and it returns '3.4.5'
        self._exes['gcc'] = b'gcc (GCC) 3.4.5 (mingw special)\nFSF'
        res = get_versions()
        self.assertEqual(str(res[0]), '3.4.5')

        # and let's see what happens when the version
        # doesn't match the regular expression
        # (\d+\.\d+(\.\d+)*)
        self._exes['gcc'] = b'very strange output'
        res = get_versions()
        self.assertEqual(res[0], None)

        # same thing for ld
        self._exes['ld'] = b'GNU ld version 2.17.50 20060824'
        res = get_versions()
        self.assertEqual(str(res[1]), '2.17.50')
        self._exes['ld'] = b'@(#)PROGRAM:ld  PROJECT:ld64-77'
        res = get_versions()
        self.assertEqual(res[1], None)

        # and dllwrap
        self._exes['dllwrap'] = b'GNU dllwrap 2.17.50 20060824\nFSF'
        res = get_versions()
        self.assertEqual(str(res[2]), '2.17.50')
        self._exes['dllwrap'] = b'Cheese Wrap'
        res = get_versions()
        self.assertEqual(res[2], None)
Пример #2
0
    def test_get_versions(self):

        # get_versions calls distutils.spawn.find_executable on
        # 'gcc', 'ld' and 'dllwrap'
        self.assertEqual(get_versions(), (None, None, None))

        # Let's fake we have 'gcc' and it returns '3.4.5'
        self._exes['gcc'] = b'gcc (GCC) 3.4.5 (mingw special)\nFSF'
        res = get_versions()
        self.assertEqual(str(res[0]), '3.4.5')

        # and let's see what happens when the version
        # doesn't match the regular expression
        # (\d+\.\d+(\.\d+)*)
        self._exes['gcc'] = b'very strange output'
        res = get_versions()
        self.assertEqual(res[0], None)

        # same thing for ld
        self._exes['ld'] = b'GNU ld version 2.17.50 20060824'
        res = get_versions()
        self.assertEqual(str(res[1]), '2.17.50')
        self._exes['ld'] = b'@(#)PROGRAM:ld  PROJECT:ld64-77'
        res = get_versions()
        self.assertEqual(res[1], None)

        # and dllwrap
        self._exes['dllwrap'] = b'GNU dllwrap 2.17.50 20060824\nFSF'
        res = get_versions()
        self.assertEqual(str(res[2]), '2.17.50')
        self._exes['dllwrap'] = b'Cheese Wrap'
        res = get_versions()
        self.assertEqual(res[2], None)
 def test_get_version_deprecated(self):
     with check_warnings() as w:
         warnings.simplefilter("always")
         # make sure get_compiler_versions and get_versions
         # returns the same thing
         self.assertEquals(get_compiler_versions(), get_versions())
         # make sure using get_version() generated a warning
         self.assertEquals(len(w.warnings), 1)
         # make sure any usage of RE_VERSION will also
         # generate a warning, but till works
         version = RE_VERSION.search('1.2').group(1)
         self.assertEquals(version, '1.2')
         self.assertEquals(len(w.warnings), 2)
 def test_get_version_deprecated(self):
     with check_warnings() as w:
         warnings.simplefilter("always")
         # make sure get_compiler_versions and get_versions
         # returns the same thing
         self.assertEquals(get_compiler_versions(), get_versions())
         # make sure using get_version() generated a warning
         self.assertEquals(len(w.warnings), 1)
         # make sure any usage of RE_VERSION will also
         # generate a warning, but till works
         version = RE_VERSION.search('1.2').group(1)
         self.assertEquals(version, '1.2')
         self.assertEquals(len(w.warnings), 2)
 def test_get_versions(self):
     self.assertEqual(get_versions(), (None, None, None))
     self._exes['gcc'] = b'gcc (GCC) 3.4.5 (mingw special)\nFSF'
     res = get_versions()
     self.assertEqual(str(res[0]), '3.4.5')
     self._exes['gcc'] = b'very strange output'
     res = get_versions()
     self.assertEqual(res[0], None)
     self._exes['ld'] = b'GNU ld version 2.17.50 20060824'
     res = get_versions()
     self.assertEqual(str(res[1]), '2.17.50')
     self._exes['ld'] = b'@(#)PROGRAM:ld  PROJECT:ld64-77'
     res = get_versions()
     self.assertEqual(res[1], None)
     self._exes['dllwrap'] = b'GNU dllwrap 2.17.50 20060824\nFSF'
     res = get_versions()
     self.assertEqual(str(res[2]), '2.17.50')
     self._exes['dllwrap'] = b'Cheese Wrap'
     res = get_versions()
     self.assertEqual(res[2], None)
Пример #6
0
class DependencyException(Exception):
    pass


class RequiredDependencyException(Exception):
    pass


PLATFORM_MINGW = os.name == "nt" and "GCC" in sys.version
PLATFORM_PYPY = hasattr(sys, "pypy_version_info")

if sys.platform == "win32" and PLATFORM_MINGW:
    from distutils import cygwinccompiler

    cygwin_versions = cygwinccompiler.get_versions()
    if cygwin_versions[1] is None:
        # ld version is None
        # distutils cygwinccompiler might fetch the ld path from gcc
        # Try the normal path instead
        cygwin_versions = list(cygwin_versions)
        cygwin_versions[1] = cygwinccompiler._find_exe_version("ld -v")
        cygwinccompiler.get_versions = lambda: tuple(cygwin_versions)


def _dbg(s, tp=None):
    if DEBUG:
        if tp:
            print(s % tp)
            return
        print(s)