File: __init__.py

package info (click to toggle)
gridtools 2.3.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 29,480 kB
  • sloc: cpp: 228,792; python: 17,561; javascript: 9,164; ansic: 4,101; sh: 850; makefile: 231; f90: 201
file content (54 lines) | stat: -rw-r--r-- 1,634 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# -*- coding: utf-8 -*-

import os

from pyutils import buildinfo, env, log, runtools


def _ctest(only=None, exclude=None, verbose=False):
    command = ['ctest', '--output-on-failure']
    if only:
        command += ['-L', only]
    if exclude:
        command += ['-LE', exclude]
    if verbose:
        command.append('-VV')
    return command


def run(run_mpi_tests, verbose_ctest):
    runtools.srun(_ctest(exclude='mpi', verbose=verbose_ctest),
                  log_output=log.info,
                  cwd=buildinfo.binary_dir)
    if run_mpi_tests:
        runtools.salloc(_ctest(only='mpi', verbose=verbose_ctest),
                        log_output=log.info,
                        cwd=buildinfo.binary_dir,
                        use_mpi_config=True)


def run_perftests():
    runtools.srun([os.path.join('tests', 'regression', 'perftests')],
                  log_output=log.info,
                  cwd=buildinfo.binary_dir)


def compile_and_run_examples(build_dir, verbose_ctest):
    import build
    from pyutils import buildinfo

    source_dir = os.path.join(buildinfo.install_dir, 'gridtools_examples')
    build_dir = os.path.abspath(build_dir)
    os.makedirs(build_dir, exist_ok=True)

    env.set_cmake_arg('CMAKE_BUILD_TYPE', buildinfo.build_type.title())

    log.info('Configuring examples')
    build.cmake(source_dir, build_dir)
    log.info('Building examples')
    build.make(build_dir)
    log.info('Successfully built examples')
    runtools.srun(_ctest(verbose=verbose_ctest),
                  log_output=log.info,
                  cwd=build_dir)
    log.info('Successfully executed examples')