Merge pull request #1661 from QuLogic/test-cases

Test case unique-ification
pull/1711/head
Jussi Pakkanen 8 years ago committed by GitHub
commit 6d1ba44396
  1. 52
      run_project_tests.py
  2. 0
      test cases/common/147 mesonintrospect from scripts/check_env.py
  3. 0
      test cases/common/147 mesonintrospect from scripts/meson.build
  4. 0
      test cases/common/148 custom target multiple outputs/generator.py
  5. 0
      test cases/common/148 custom target multiple outputs/installed_files.txt
  6. 0
      test cases/common/148 custom target multiple outputs/meson.build
  7. 0
      test cases/failing/45 abs subdir/bob/meson.build
  8. 0
      test cases/failing/45 abs subdir/meson.build
  9. 0
      test cases/failing/46 abspath to srcdir/meson.build

@ -15,6 +15,7 @@
# limitations under the License. # limitations under the License.
from glob import glob from glob import glob
import itertools
import os, subprocess, shutil, sys, signal import os, subprocess, shutil, sys, signal
from io import StringIO from io import StringIO
from ast import literal_eval from ast import literal_eval
@ -411,27 +412,30 @@ def have_java():
return False return False
def detect_tests_to_run(): def detect_tests_to_run():
all_tests = [] # Name, subdirectory, skip condition.
all_tests.append(('common', gather_tests('test cases/common'), False)) all_tests = [
all_tests.append(('failing-meson', gather_tests('test cases/failing'), False)) ('common', 'common', False),
all_tests.append(('failing-build', gather_tests('test cases/failing build'), False)) ('failing-meson', 'failing', False),
all_tests.append(('failing-tests', gather_tests('test cases/failing tests'), False)) ('failing-build', 'failing build', False),
all_tests.append(('prebuilt', gather_tests('test cases/prebuilt'), False)) ('failing-tests', 'failing tests', False),
('prebuilt', 'prebuilt', False),
all_tests.append(('platform-osx', gather_tests('test cases/osx'), False if mesonlib.is_osx() else True))
all_tests.append(('platform-windows', gather_tests('test cases/windows'), False if mesonlib.is_windows() or mesonlib.is_cygwin() else True)) ('platform-osx', 'osx', not mesonlib.is_osx()),
all_tests.append(('platform-linux', gather_tests('test cases/linuxlike'), False if not (mesonlib.is_osx() or mesonlib.is_windows()) else True)) ('platform-windows', 'windows', not mesonlib.is_windows() and not mesonlib.is_cygwin()),
all_tests.append(('framework', gather_tests('test cases/frameworks'), False if not mesonlib.is_osx() and not mesonlib.is_windows() and not mesonlib.is_cygwin() else True)) ('platform-linux', 'linuxlike', mesonlib.is_osx() or mesonlib.is_windows()),
all_tests.append(('java', gather_tests('test cases/java'), False if backend is Backend.ninja and not mesonlib.is_osx() and have_java() else True))
all_tests.append(('C#', gather_tests('test cases/csharp'), False if backend is Backend.ninja and shutil.which('mcs') else True)) ('framework', 'frameworks', mesonlib.is_osx() or mesonlib.is_windows() or mesonlib.is_cygwin()),
all_tests.append(('vala', gather_tests('test cases/vala'), False if backend is Backend.ninja and shutil.which('valac') else True)) ('java', 'java', backend is not Backend.ninja or mesonlib.is_osx() or not have_java()),
all_tests.append(('rust', gather_tests('test cases/rust'), False if backend is Backend.ninja and shutil.which('rustc') else True)) ('C#', 'csharp', backend is not Backend.ninja or not shutil.which('mcs')),
all_tests.append(('d', gather_tests('test cases/d'), False if backend is Backend.ninja and have_d_compiler() else True)) ('vala', 'vala', backend is not Backend.ninja or not shutil.which('valac')),
all_tests.append(('objective c', gather_tests('test cases/objc'), False if backend in (Backend.ninja, Backend.xcode) and not mesonlib.is_windows() else True)) ('rust', 'rust', backend is not Backend.ninja or not shutil.which('rustc')),
all_tests.append(('fortran', gather_tests('test cases/fortran'), False if backend is Backend.ninja and shutil.which('gfortran') else True)) ('d', 'd', backend is not Backend.ninja or not have_d_compiler()),
all_tests.append(('swift', gather_tests('test cases/swift'), False if backend in (Backend.ninja, Backend.xcode) and shutil.which('swiftc') else True)) ('objective c', 'objc', backend not in (Backend.ninja, Backend.xcode) or mesonlib.is_windows()),
all_tests.append(('python3', gather_tests('test cases/python3'), False if backend is Backend.ninja and shutil.which('python3') else True)) ('fortran', 'fortran', backend is not Backend.ninja or not shutil.which('gfortran')),
return all_tests ('swift', 'swift', backend not in (Backend.ninja, Backend.xcode) or not shutil.which('swiftc')),
('python3', 'python3', backend is not Backend.ninja or not shutil.which('python3')),
]
return [(name, gather_tests('test cases/' + subdir), skip) for name, subdir, skip in all_tests]
def run_tests(all_tests, log_name_base, extra_args): def run_tests(all_tests, log_name_base, extra_args):
global stop, executor, futures global stop, executor, futures
@ -642,4 +646,10 @@ if __name__ == '__main__':
print('\nMesonlogs of failing tests\n') print('\nMesonlogs of failing tests\n')
for l in failing_logs: for l in failing_logs:
print(l, '\n') print(l, '\n')
for name, dirs, skip in all_tests:
dirs = (os.path.basename(x) for x in dirs)
for k, g in itertools.groupby(dirs, key=lambda x: x.split()[0]):
tests = list(g)
if len(tests) != 1:
print('WARNING: The %s suite contains duplicate "%s" tests: "%s"' % (name, k, '", "'.join(tests)))
sys.exit(failing_tests) sys.exit(failing_tests)

Loading…
Cancel
Save