diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2019-05-20 00:59:20 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-05-20 23:38:13 +0300 |
commit | 79d530e32509b8ccdc50a6769e8c786b3eccebd3 (patch) | |
tree | 49f6efe74cbccf3de19a208f163e228824f7f12b /test cases | |
parent | 60e1676651a0ba1b5a1ff6e6ed443421f878b8e2 (diff) | |
download | meson-79d530e32509b8ccdc50a6769e8c786b3eccebd3.zip meson-79d530e32509b8ccdc50a6769e8c786b3eccebd3.tar.gz meson-79d530e32509b8ccdc50a6769e8c786b3eccebd3.tar.bz2 |
Generators can have extra target dependencies. Closes #4131.
Diffstat (limited to 'test cases')
-rwxr-xr-x | test cases/common/27 pipeline/depends/copyrunner.py | 7 | ||||
-rw-r--r-- | test cases/common/27 pipeline/depends/filecopier.c | 22 | ||||
-rw-r--r-- | test cases/common/27 pipeline/depends/libsrc.c.in | 3 | ||||
-rw-r--r-- | test cases/common/27 pipeline/depends/meson.build | 11 | ||||
-rw-r--r-- | test cases/common/27 pipeline/depends/prog.c | 5 | ||||
-rw-r--r-- | test cases/common/27 pipeline/meson.build | 2 |
6 files changed, 50 insertions, 0 deletions
diff --git a/test cases/common/27 pipeline/depends/copyrunner.py b/test cases/common/27 pipeline/depends/copyrunner.py new file mode 100755 index 0000000..0ef6a6d --- /dev/null +++ b/test cases/common/27 pipeline/depends/copyrunner.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +import sys, subprocess + +prog, infile, outfile = sys.argv[1:] + +subprocess.check_call([prog, infile, outfile]) diff --git a/test cases/common/27 pipeline/depends/filecopier.c b/test cases/common/27 pipeline/depends/filecopier.c new file mode 100644 index 0000000..9001cf3 --- /dev/null +++ b/test cases/common/27 pipeline/depends/filecopier.c @@ -0,0 +1,22 @@ +#include<stdio.h> +#include<assert.h> + +#define BUFSIZE 1024 + +int main(int argc, char **argv) { + char buffer[BUFSIZE]; + size_t num_read; + size_t num_written; + FILE *fin = fopen(argv[1], "rb"); + FILE *fout; + assert(fin); + num_read = fread(buffer, 1, BUFSIZE, fin); + assert(num_read > 0); + fclose(fin); + fout = fopen(argv[2], "wb"); + assert(fout); + num_written = fwrite(buffer, 1, num_read, fout); + assert(num_written == num_read); + fclose(fout); + return 0; +} diff --git a/test cases/common/27 pipeline/depends/libsrc.c.in b/test cases/common/27 pipeline/depends/libsrc.c.in new file mode 100644 index 0000000..652f4eb --- /dev/null +++ b/test cases/common/27 pipeline/depends/libsrc.c.in @@ -0,0 +1,3 @@ +int func() { + return 42; +} diff --git a/test cases/common/27 pipeline/depends/meson.build b/test cases/common/27 pipeline/depends/meson.build new file mode 100644 index 0000000..5111fee --- /dev/null +++ b/test cases/common/27 pipeline/depends/meson.build @@ -0,0 +1,11 @@ +runner = find_program('copyrunner.py') + +copier = executable('copier', 'filecopier.c', native: true) + +cg = generator(runner, + output: ['@BASENAME@.c'], + arguments: [copier.full_path(), '@INPUT@', '@OUTPUT@'], + depends: copier) + +test('generatordep', + executable('gd', 'prog.c', cg.process('libsrc.c.in'))) diff --git a/test cases/common/27 pipeline/depends/prog.c b/test cases/common/27 pipeline/depends/prog.c new file mode 100644 index 0000000..f4a7dd3 --- /dev/null +++ b/test cases/common/27 pipeline/depends/prog.c @@ -0,0 +1,5 @@ +int func(); + +int main(int argc, char **argv) { + return func() != 42; +} diff --git a/test cases/common/27 pipeline/meson.build b/test cases/common/27 pipeline/meson.build index bbb49d6..e12cb7b 100644 --- a/test cases/common/27 pipeline/meson.build +++ b/test cases/common/27 pipeline/meson.build @@ -19,3 +19,5 @@ test('pipelined', e2) # This is in a subdirectory to make sure # we write proper subdir paths to output. subdir('src') + +subdir('depends') |