aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/interpreter/interpreter.py2
-rw-r--r--mesonbuild/interpreter/mesonmain.py10
-rw-r--r--test cases/failing/116 run_target in test/meson.build4
-rw-r--r--test cases/failing/116 run_target in test/test.json8
-rw-r--r--test cases/failing/116 run_target in test/trivial.c6
-rw-r--r--test cases/failing/117 run_target in add_install_script/meson.build4
-rw-r--r--test cases/failing/117 run_target in add_install_script/test.json8
-rw-r--r--test cases/failing/117 run_target in add_install_script/trivial.c11
8 files changed, 47 insertions, 6 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 3953ae1..2eb7a0a 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -192,7 +192,7 @@ known_build_target_kwargs = (
)
TEST_KWARGS: T.List[KwargInfo] = [
- KwargInfo('args', ContainerTypeInfo(list, (str, mesonlib.File, build.Target)),
+ KwargInfo('args', ContainerTypeInfo(list, (str, mesonlib.File, build.BuildTarget, build.CustomTarget)),
listify=True, default=[]),
KwargInfo('should_fail', bool, default=False),
KwargInfo('timeout', int, default=30),
diff --git a/mesonbuild/interpreter/mesonmain.py b/mesonbuild/interpreter/mesonmain.py
index d030f24..adc342f 100644
--- a/mesonbuild/interpreter/mesonmain.py
+++ b/mesonbuild/interpreter/mesonmain.py
@@ -95,9 +95,9 @@ class MesonMain(MesonInterpreterObject):
def _process_script_args(
self, name: str, args: T.Sequence[T.Union[
- str, mesonlib.File, build.Target,
+ str, mesonlib.File, build.BuildTarget, build.CustomTarget,
build.CustomTargetIndex,
- ExternalProgram, build.Executable,
+ ExternalProgram,
]], allow_built: bool = False) -> T.List[str]:
script_args = [] # T.List[str]
new = False
@@ -107,7 +107,7 @@ class MesonMain(MesonInterpreterObject):
elif isinstance(a, mesonlib.File):
new = True
script_args.append(a.rel_to_builddir(self.interpreter.environment.source_dir))
- elif isinstance(a, (build.Target, build.CustomTargetIndex)):
+ elif isinstance(a, (build.BuildTarget, build.CustomTarget, build.CustomTargetIndex)):
if not allow_built:
raise InterpreterException(f'Arguments to {name} cannot be built')
new = True
@@ -135,7 +135,7 @@ class MesonMain(MesonInterpreterObject):
@typed_pos_args(
'meson.add_install_script',
(str, mesonlib.File, build.Executable, ExternalProgram),
- varargs=(str, mesonlib.File, build.Target, build.CustomTargetIndex, ExternalProgram)
+ varargs=(str, mesonlib.File, build.BuildTarget, build.CustomTarget, build.CustomTargetIndex, ExternalProgram)
)
@typed_kwargs(
'meson.add_install_script',
@@ -145,7 +145,7 @@ class MesonMain(MesonInterpreterObject):
def add_install_script_method(
self,
args: T.Tuple[T.Union[str, mesonlib.File, build.Executable, ExternalProgram],
- T.List[T.Union[str, mesonlib.File, build.Target, build.CustomTargetIndex, ExternalProgram]]],
+ T.List[T.Union[str, mesonlib.File, build.BuildTarget, build.CustomTarget, build.CustomTargetIndex, ExternalProgram]]],
kwargs: 'AddInstallScriptKW') -> None:
if isinstance(args[0], mesonlib.File):
FeatureNew.single_use('Passing file object to script parameter of add_install_script',
diff --git a/test cases/failing/116 run_target in test/meson.build b/test cases/failing/116 run_target in test/meson.build
new file mode 100644
index 0000000..db7cb30
--- /dev/null
+++ b/test cases/failing/116 run_target in test/meson.build
@@ -0,0 +1,4 @@
+project('trivial test', 'c')
+exe = executable('trivialprog', 'trivial.c')
+runt = run_target('invalid', command: ['echo', 'run_target'])
+test('runtest', exe, args: runt)
diff --git a/test cases/failing/116 run_target in test/test.json b/test cases/failing/116 run_target in test/test.json
new file mode 100644
index 0000000..c273a3b
--- /dev/null
+++ b/test cases/failing/116 run_target in test/test.json
@@ -0,0 +1,8 @@
+{
+ "stdout": [
+ {
+ "line": "test cases/failing/116 run_target in test/meson.build:4:0: ERROR: test keyword argument 'args' was of type 'list' but should have been list[str,File,BuildTarget,CustomTarget]"
+ }
+ ]
+}
+
diff --git a/test cases/failing/116 run_target in test/trivial.c b/test cases/failing/116 run_target in test/trivial.c
new file mode 100644
index 0000000..96612d4
--- /dev/null
+++ b/test cases/failing/116 run_target in test/trivial.c
@@ -0,0 +1,6 @@
+#include<stdio.h>
+
+int main(void) {
+ printf("Trivial test is working.\n");
+ return 0;
+}
diff --git a/test cases/failing/117 run_target in add_install_script/meson.build b/test cases/failing/117 run_target in add_install_script/meson.build
new file mode 100644
index 0000000..9d37a39
--- /dev/null
+++ b/test cases/failing/117 run_target in add_install_script/meson.build
@@ -0,0 +1,4 @@
+project('trivial test', 'c')
+exe = executable('trivialprog', 'trivial.c')
+runt = run_target('invalid', command: ['echo', 'run_target'])
+meson.add_install_script(exe, runt)
diff --git a/test cases/failing/117 run_target in add_install_script/test.json b/test cases/failing/117 run_target in add_install_script/test.json
new file mode 100644
index 0000000..fec1941
--- /dev/null
+++ b/test cases/failing/117 run_target in add_install_script/test.json
@@ -0,0 +1,8 @@
+{
+ "stdout": [
+ {
+ "line": "test cases/failing/117 run_target in add_install_script/meson.build:4:6: ERROR: meson.add_install_script argument 2 was of type \"RunTarget\" but should have been one of: \"str\", \"File\", \"BuildTarget\", \"CustomTarget\", \"CustomTargetIndex\", \"ExternalProgram\""
+ }
+ ]
+}
+
diff --git a/test cases/failing/117 run_target in add_install_script/trivial.c b/test cases/failing/117 run_target in add_install_script/trivial.c
new file mode 100644
index 0000000..1b14571
--- /dev/null
+++ b/test cases/failing/117 run_target in add_install_script/trivial.c
@@ -0,0 +1,11 @@
+#include<stdio.h>
+
+int main(int argc, char **argv) {
+ FILE *fp = fopen(argv[1], "r");
+ if (fp == NULL) {
+ perror("fopen");
+ return 1;
+ } else {
+ return 0;
+ }
+}