summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Behnel <stefan_ml@behnel.de>2019-02-22 11:54:41 +0100
committerStefan Behnel <stefan_ml@behnel.de>2019-02-22 11:54:41 +0100
commita8d7ccd27779b9e26eff6b7744720d9a5a36e397 (patch)
tree9b74b7f3040523ff61132cf4eabea451715d9162
parentb57e43300b594f1cbe6604d03047fc7fe8ed72c7 (diff)
downloadcython-a8d7ccd27779b9e26eff6b7744720d9a5a36e397.tar.gz
Allow testing a single test file with both Cy2 and Cy3 language levels by giving it the new tag "all_language_levels".
-rwxr-xr-xruntests.py28
1 files changed, 18 insertions, 10 deletions
diff --git a/runtests.py b/runtests.py
index 2069829ea..813ebad83 100755
--- a/runtests.py
+++ b/runtests.py
@@ -754,6 +754,7 @@ class TestBuilder(object):
elif 'no-cpp' in tags['tag'] and 'cpp' in self.languages:
languages = list(languages)
languages.remove('cpp')
+ language_levels = [2, 3] if 'all_language_levels' in tags['tag'] else [None]
pythran_dir = self.pythran_dir
if 'pythran' in tags['tag'] and not pythran_dir and 'cpp' in languages:
@@ -767,14 +768,16 @@ class TestBuilder(object):
pythran_dir = pythran_ext['include_dirs'][0]
preparse_list = tags.get('preparse', ['id'])
- tests = [ self.build_test(test_class, path, workdir, module, tags, language,
+ tests = [ self.build_test(test_class, path, workdir, module, tags, language, language_level,
expect_errors, expect_warnings, warning_errors, preparse,
pythran_dir if language == "cpp" else None)
for language in languages
- for preparse in preparse_list ]
+ for preparse in preparse_list
+ for language_level in language_levels
+ ]
return tests
- def build_test(self, test_class, path, workdir, module, tags, language,
+ def build_test(self, test_class, path, workdir, module, tags, language, language_level,
expect_errors, expect_warnings, warning_errors, preparse, pythran_dir):
language_workdir = os.path.join(workdir, language)
if not os.path.exists(language_workdir):
@@ -793,7 +796,7 @@ class TestBuilder(object):
cleanup_failures=self.cleanup_failures,
cython_only=self.cython_only,
fork=self.fork,
- language_level=self.language_level,
+ language_level=language_level or self.language_level,
warning_errors=warning_errors,
test_determinism=self.test_determinism,
common_utility_dir=self.common_utility_dir,
@@ -860,7 +863,15 @@ class CythonCompileTestCase(unittest.TestCase):
unittest.TestCase.__init__(self)
def shortDescription(self):
- return "compiling (%s%s) %s" % (self.language, "/pythran" if self.pythran_dir is not None else "", self.name)
+ return "compiling (%s%s%s) %s" % (
+ self.language,
+ "/cy2" if self.language_level == 2 else "/cy3" if self.language_level == 3 else "",
+ "/pythran" if self.pythran_dir is not None else "",
+ self.name
+ )
+
+ def description_name(self):
+ return self.name
def setUp(self):
from Cython.Compiler import Options
@@ -1245,11 +1256,8 @@ class CythonRunTestCase(CythonCompileTestCase):
from Cython.Compiler import Options
Options.clear_to_none = False
- def shortDescription(self):
- if self.cython_only:
- return CythonCompileTestCase.shortDescription(self)
- else:
- return "compiling (%s%s) and running %s" % (self.language, "/pythran" if self.pythran_dir is not None else "", self.name)
+ def description_name(self):
+ return self.name if self.cython_only else "and running %s" % self.name
def run(self, result=None):
if result is None: