diff options
Diffstat (limited to 'test cases/common')
| -rw-r--r-- | test cases/common/141 c cpp and asm/main.c | 8 | ||||
| -rw-r--r-- | test cases/common/141 c cpp and asm/main.cpp | 11 | ||||
| -rw-r--r-- | test cases/common/141 c cpp and asm/meson.build | 23 | ||||
| -rw-r--r-- | test cases/common/141 c cpp and asm/retval-arm.S | 8 | ||||
| -rw-r--r-- | test cases/common/141 c cpp and asm/retval-x86.S | 8 | ||||
| -rw-r--r-- | test cases/common/141 c cpp and asm/retval-x86_64.S | 8 | ||||
| -rw-r--r-- | test cases/common/141 c cpp and asm/somelib.c | 3 | ||||
| -rw-r--r-- | test cases/common/141 c cpp and asm/symbol-underscore.h | 5 | ||||
| -rw-r--r-- | test cases/common/9 header install/meson.build | 2 |
9 files changed, 75 insertions, 1 deletions
diff --git a/test cases/common/141 c cpp and asm/main.c b/test cases/common/141 c cpp and asm/main.c new file mode 100644 index 000000000..897672309 --- /dev/null +++ b/test cases/common/141 c cpp and asm/main.c @@ -0,0 +1,8 @@ +#include <stdio.h> + +int get_retval(void); + +int main(int argc, char **argv) { + printf("C seems to be working.\n"); + return get_retval(); +} diff --git a/test cases/common/141 c cpp and asm/main.cpp b/test cases/common/141 c cpp and asm/main.cpp new file mode 100644 index 000000000..c08987073 --- /dev/null +++ b/test cases/common/141 c cpp and asm/main.cpp @@ -0,0 +1,11 @@ +#include <iostream> + +extern "C" { + int get_retval(void); + int get_cval(void); +} + +int main(int argc, char **argv) { + std::cout << "C++ seems to be working." << std::endl; + return get_retval(); +} diff --git a/test cases/common/141 c cpp and asm/meson.build b/test cases/common/141 c cpp and asm/meson.build new file mode 100644 index 000000000..2c3610ea0 --- /dev/null +++ b/test cases/common/141 c cpp and asm/meson.build @@ -0,0 +1,23 @@ +project('c cpp and asm', 'c', 'cpp') + +cpu = host_machine.cpu_family() +cc = meson.get_compiler('c') + +supported_cpus = ['arm', 'x86', 'x86_64'] + +if not supported_cpus.contains(cpu) + error('MESON_SKIP_TEST unsupported cpu:' + cpu) +endif + +if meson.get_compiler('c').get_id() == 'msvc' + error('MESON_SKIP_TEST MSVC can\'t compile assembly') +endif + +if cc.symbols_have_underscore_prefix() + add_project_arguments('-DMESON_TEST__UNDERSCORE_SYMBOL', language: 'c') +endif + +test('test-c-asm', executable('c-asm', ['main.c', 'retval-' + cpu + '.S'])) +test('test-cpp-asm', executable('cpp-asm', ['main.cpp', 'retval-' + cpu + '.S'])) +test('test-c-cpp-asm', executable('c-cpp-asm', ['somelib.c', 'main.cpp', 'retval-' + cpu + '.S'])) +test('test-cpp-c-asm', executable('cpp-c-asm', ['main.cpp', 'somelib.c', 'retval-' + cpu + '.S'])) diff --git a/test cases/common/141 c cpp and asm/retval-arm.S b/test cases/common/141 c cpp and asm/retval-arm.S new file mode 100644 index 000000000..8b3719765 --- /dev/null +++ b/test cases/common/141 c cpp and asm/retval-arm.S @@ -0,0 +1,8 @@ +#include "symbol-underscore.h" + +.text +.globl SYMBOL_NAME(get_retval) + +SYMBOL_NAME(get_retval): + mov r0, #0 + mov pc, lr diff --git a/test cases/common/141 c cpp and asm/retval-x86.S b/test cases/common/141 c cpp and asm/retval-x86.S new file mode 100644 index 000000000..06bd75c28 --- /dev/null +++ b/test cases/common/141 c cpp and asm/retval-x86.S @@ -0,0 +1,8 @@ +#include "symbol-underscore.h" + +.text +.globl SYMBOL_NAME(get_retval) + +SYMBOL_NAME(get_retval): + xorl %eax, %eax + retl diff --git a/test cases/common/141 c cpp and asm/retval-x86_64.S b/test cases/common/141 c cpp and asm/retval-x86_64.S new file mode 100644 index 000000000..638921e3e --- /dev/null +++ b/test cases/common/141 c cpp and asm/retval-x86_64.S @@ -0,0 +1,8 @@ +#include "symbol-underscore.h" + +.text +.globl SYMBOL_NAME(get_retval) + +SYMBOL_NAME(get_retval): + xorl %eax, %eax + retq diff --git a/test cases/common/141 c cpp and asm/somelib.c b/test cases/common/141 c cpp and asm/somelib.c new file mode 100644 index 000000000..e585b8e9f --- /dev/null +++ b/test cases/common/141 c cpp and asm/somelib.c @@ -0,0 +1,3 @@ +int get_cval (void) { + return 0; +} diff --git a/test cases/common/141 c cpp and asm/symbol-underscore.h b/test cases/common/141 c cpp and asm/symbol-underscore.h new file mode 100644 index 000000000..d0f3ef9cc --- /dev/null +++ b/test cases/common/141 c cpp and asm/symbol-underscore.h @@ -0,0 +1,5 @@ +#if defined(MESON_TEST__UNDERSCORE_SYMBOL) +# define SYMBOL_NAME(name) _##name +#else +# define SYMBOL_NAME(name) name +#endif diff --git a/test cases/common/9 header install/meson.build b/test cases/common/9 header install/meson.build index 7f3ce5175..7dfbddbf4 100644 --- a/test cases/common/9 header install/meson.build +++ b/test cases/common/9 header install/meson.build @@ -1,4 +1,4 @@ -project('header install', 'c') +project('header install') as_array = ['subdir.h'] |
