From 7b6e527f440cd7e6f8be2b07cee320ee6ca18786 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 29 Apr 2024 06:41:38 +0200 Subject: Adding upstream version 1.0.1. Signed-off-by: Daniel Baumann --- test cases/native/4 tryrun/meson.build | 78 ++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 test cases/native/4 tryrun/meson.build (limited to 'test cases/native/4 tryrun/meson.build') diff --git a/test cases/native/4 tryrun/meson.build b/test cases/native/4 tryrun/meson.build new file mode 100644 index 0000000..5580974 --- /dev/null +++ b/test cases/native/4 tryrun/meson.build @@ -0,0 +1,78 @@ +project('tryrun', 'c', 'cpp') + +# Complex to exercise all code paths. +if meson.is_cross_build() + if meson.can_run_host_binaries() + compilers = [meson.get_compiler('c', native : false), meson.get_compiler('cpp', native : false)] + else + compilers = [meson.get_compiler('c', native : true), meson.get_compiler('cpp', native : true)] + endif +else + compilers = [meson.get_compiler('c'), meson.get_compiler('cpp')] +endif + +ok_code = '''#include +int main(void) { + printf("%s\n", "stdout"); + fprintf(stderr, "%s\n", "stderr"); + return 0; +} +''' + +error_code = '''int main(void) { + return 1; +} +''' + +no_compile_code = '''int main(void) { +''' + +INPUTS = [ + ['String', ok_code, error_code, no_compile_code], + ['File', files('ok.c'), files('error.c'), files('no_compile.c')], +] + +foreach cc : compilers + foreach input : INPUTS + type = input[0] + ok = cc.run(input[1], name : type + ' should succeed') + err = cc.run(input[2], name : type + ' should fail') + noc = cc.run(input[3], name : type + ' does not compile') + + if noc.compiled() + error(type + ' compilation fail test failed.') + else + message(type + ' fail detected properly.') + endif + + if ok.compiled() + message(type + ' compilation worked.') + else + error(type + ' compilation did not work.') + endif + + if ok.returncode() == 0 + message(type + ' return code ok.') + else + error(type + ' return code fail') + endif + + if err.returncode() == 1 + message(type + ' bad return code ok.') + else + error(type + ' bad return code fail.') + endif + + if ok.stdout().strip() == 'stdout' + message(type + ' stdout ok.') + else + message(type + ' bad stdout.') + endif + + if ok.stderr().strip() == 'stderr' + message(type + ' stderr ok.') + else + message(type + ' bad stderr.') + endif + endforeach +endforeach -- cgit v1.2.3