Skip to content

Commit

Permalink
Add some tests for Mingw32CCompiler class
Browse files Browse the repository at this point in the history
  • Loading branch information
naveen521kk committed Nov 10, 2023
1 parent 2fbf95f commit 87319ba
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions distutils/tests/test_mingwccompiler.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import pytest

from distutils.util import split_quoted, is_mingw
from distutils.errors import DistutilsPlatformError, CCompilerError


class TestMingw32CCompiler:
@pytest.mark.skipif(not is_mingw(), reason='not on mingw')
def test_compiler_type(self):
from distutils.cygwinccompiler import Mingw32CCompiler

compiler = Mingw32CCompiler()
assert compiler.compiler_type == 'mingw32'

@pytest.mark.skipif(not is_mingw(), reason='not on mingw')
def test_set_executables(self, monkeypatch):
from distutils.cygwinccompiler import Mingw32CCompiler

monkeypatch.setenv('CC', 'cc')
monkeypatch.setenv('CXX', 'c++')

compiler = Mingw32CCompiler()

assert compiler.compiler == split_quoted('cc -O -Wall')
assert compiler.compiler_so == split_quoted('cc -shared -O -Wall')
assert compiler.compiler_cxx == split_quoted('c++ -O -Wall')
assert compiler.linker_exe == split_quoted('cc')
assert compiler.linker_so == split_quoted('cc -shared')

@pytest.mark.skipif(not is_mingw(), reason='not on mingw')
def test_runtime_library_dir_option(self):
from distutils.cygwinccompiler import Mingw32CCompiler

compiler = Mingw32CCompiler()
with pytest.raises(DistutilsPlatformError):
compiler.runtime_library_dir_option('/usr/lib')

@pytest.mark.skipif(not is_mingw(), reason='not on mingw')
def test_cygwincc_error(self, monkeypatch):
import distutils.cygwinccompiler

monkeypatch.setattr(distutils.cygwinccompiler, 'is_cygwincc', lambda _: True)

with pytest.raises(CCompilerError):
distutils.cygwinccompiler.Mingw32CCompiler()

0 comments on commit 87319ba

Please sign in to comment.