diff options
Diffstat (limited to 'test cases')
-rw-r--r-- | test cases/31 generate header/input_src.dat | 1 | ||||
-rw-r--r-- | test cases/31 generate header/meson.build | 13 | ||||
-rw-r--r-- | test cases/31 generate header/prog.c | 9 | ||||
-rw-r--r-- | test cases/31 generate header/srcgen.c | 33 |
4 files changed, 56 insertions, 0 deletions
diff --git a/test cases/31 generate header/input_src.dat b/test cases/31 generate header/input_src.dat new file mode 100644 index 0000000..354499a --- /dev/null +++ b/test cases/31 generate header/input_src.dat @@ -0,0 +1 @@ +#include<stdio.h> diff --git a/test cases/31 generate header/meson.build b/test cases/31 generate header/meson.build new file mode 100644 index 0000000..1948eeb --- /dev/null +++ b/test cases/31 generate header/meson.build @@ -0,0 +1,13 @@ +project('pipeline test', 'c') + +e1 = executable('srcgen', 'srcgen.c') + +gen = generator(e1, \ + output_name : '@BASENAME@.h', \ + arguments : ['@INPUT@', '@OUTPUT@']) + +generated = gen.process('input_src.dat') + +e2 = executable('prog', 'prog.c', generated) + +add_test('pipelined', e2)
\ No newline at end of file diff --git a/test cases/31 generate header/prog.c b/test cases/31 generate header/prog.c new file mode 100644 index 0000000..3429481 --- /dev/null +++ b/test cases/31 generate header/prog.c @@ -0,0 +1,9 @@ +#include"input_src.dat.h" + +int main(int argc, char **argv) { + void *foo = printf; + if(foo) { + return 0; + } + return 1; +} diff --git a/test cases/31 generate header/srcgen.c b/test cases/31 generate header/srcgen.c new file mode 100644 index 0000000..c4e412b --- /dev/null +++ b/test cases/31 generate header/srcgen.c @@ -0,0 +1,33 @@ +#include<stdio.h> +#include<assert.h> + +int main(int argc, char **argv) { + const int ARRSIZE = 80; + char arr[ARRSIZE]; + if(argc != 3) { + fprintf(stderr, "%s <input file> <output file>\n", argv[0]); + return 1; + } + char *ifilename = argv[1]; + char *ofilename = argv[2]; + printf("%s\n", ifilename); + FILE *ifile = fopen(ifilename, "r"); + if(!ifile) { + fprintf(stderr, "Could not open source file %s.\n", ifilename); + return 1; + } + FILE *ofile = fopen(ofilename, "w"); + if(!ofile) { + fprintf(stderr, "Could not open target file %s\n", ofilename); + return 1; + } + size_t bytes; + bytes = fread(arr, 1, ARRSIZE, ifile); + assert(bytes < 80); + assert(bytes > 0); + fwrite(arr, 1, bytes, ofile); + + fclose(ifile); + fclose(ofile); + return 0; +} |