aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/tests/test_glibc.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/tests/test_glibc.py')
-rw-r--r--setuptools/tests/test_glibc.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/setuptools/tests/test_glibc.py b/setuptools/tests/test_glibc.py
new file mode 100644
index 00000000..795fdc56
--- /dev/null
+++ b/setuptools/tests/test_glibc.py
@@ -0,0 +1,52 @@
+import warnings
+
+import pytest
+
+from setuptools.glibc import check_glibc_version
+
+__metaclass__ = type
+
+
+@pytest.fixture(params=[
+ "2.20",
+ # used by "linaro glibc", see gh-3588
+ "2.20-2014.11",
+ # weird possibilities that I just made up
+ "2.20+dev",
+ "2.20-custom",
+ "2.20.1",
+ ])
+def two_twenty(request):
+ return request.param
+
+
+@pytest.fixture(params=["asdf", "", "foo.bar"])
+def bad_string(request):
+ return request.param
+
+
+class TestGlibc:
+ def test_manylinux1_check_glibc_version(self, two_twenty):
+ """
+ Test that the check_glibc_version function is robust against weird
+ glibc version strings.
+ """
+ assert check_glibc_version(two_twenty, 2, 15)
+ assert check_glibc_version(two_twenty, 2, 20)
+ assert not check_glibc_version(two_twenty, 2, 21)
+ assert not check_glibc_version(two_twenty, 3, 15)
+ assert not check_glibc_version(two_twenty, 1, 15)
+
+ def test_bad_versions(self, bad_string):
+ """
+ For unparseable strings, warn and return False
+ """
+ with warnings.catch_warnings(record=True) as ws:
+ warnings.filterwarnings("always")
+ assert not check_glibc_version(bad_string, 2, 5)
+ for w in ws:
+ if "Expected glibc version with" in str(w.message):
+ break
+ else:
+ # Didn't find the warning we were expecting
+ assert False