-
Notifications
You must be signed in to change notification settings - Fork 72
/
Copy pathtest_options.py
37 lines (30 loc) · 1.29 KB
/
test_options.py
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
# SPDX-FileCopyrightText: 2023 The meson-python developers
#
# SPDX-License-Identifier: MIT
import os
import subprocess
import pytest
import mesonpy
ninja_ver_str = subprocess.run(['ninja', '--version'], check=True, stdout=subprocess.PIPE, text=True).stdout
NINJA_VERSION = tuple(map(int, ninja_ver_str.split('.')[:3]))
# Ninja 1.9 does not support the soruce^ syntax to specify a target.
@pytest.mark.skipif(NINJA_VERSION < (1, 10), reason='Ninja version too old')
@pytest.mark.parametrize(
('args', 'expected'),
[
([], True),
(['-Dbuildtype=release'], True),
(['-Dbuildtype=debug'], False),
],
ids=['', '-Dbuildtype=release', '-Dbuildtype=debug'],
)
def test_ndebug(package_purelib_and_platlib, tmp_path, args, expected):
with mesonpy._project({'setup-args': args}) as project:
command = subprocess.run(
# Ask ninja what is the command that would be used to
# compile a C source file (the trailing ^ is used to
# specify the target that is the first output of the rule
# containing the specified source file).
['ninja', '-C', os.fspath(project._build_dir), '-t', 'commands', '../plat.c^'],
stdout=subprocess.PIPE, check=True).stdout
assert (b'-DNDEBUG' in command) == expected