diff --git a/src/libsysprof-capture/tests/meson.build b/src/libsysprof-capture/tests/meson.build index db0a3681..aca73d26 100644 --- a/src/libsysprof-capture/tests/meson.build +++ b/src/libsysprof-capture/tests/meson.build @@ -21,6 +21,7 @@ libsysprof_capture_testsuite = { 'rewrite-pid' : {'skip': true}, 'test-capture' : {}, 'test-capture-cursor' : {}, + 'test-cplusplus' : {'cpp': true}, 'test-mapped-ring-buffer' : {}, } @@ -30,10 +31,18 @@ libsysprof_capture_testsuite_deps = [ ] foreach test, params: libsysprof_capture_testsuite - test_exe = executable(test, '@0@.c'.format(test), - c_args: libsysprof_capture_testsuite_c_args, - dependencies: libsysprof_capture_testsuite_deps, - ) + if params.get('cpp', false) + test_exe = executable(test, '@0@.cpp'.format(test), + cpp_args: libsysprof_capture_testsuite_c_args, + dependencies: libsysprof_capture_testsuite_deps, + ) + else + test_exe = executable(test, '@0@.c'.format(test), + c_args: libsysprof_capture_testsuite_c_args, + dependencies: libsysprof_capture_testsuite_deps, + ) + endif + if not params.get('skip', false) test(test, test_exe, env: libsysprof_capture_test_env) endif diff --git a/src/libsysprof-capture/tests/test-cplusplus.cpp b/src/libsysprof-capture/tests/test-cplusplus.cpp new file mode 100644 index 00000000..c604a336 --- /dev/null +++ b/src/libsysprof-capture/tests/test-cplusplus.cpp @@ -0,0 +1,24 @@ +/* + * Copyright 2024 Simon McVittie + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +#include + +#undef _NDEBUG +#include + +#ifdef __GNUC__ +#define UNUSED __attribute__((__unused__)) +#else +#define UNUSED +#endif + +int +main (UNUSED int argc, + UNUSED char *argv[]) +{ + assert (sysprof_getpagesize () > 0); + return 0; +} + diff --git a/src/libsysprof/tests/meson.build b/src/libsysprof/tests/meson.build index 12eabb1e..c4ffc92f 100644 --- a/src/libsysprof/tests/meson.build +++ b/src/libsysprof/tests/meson.build @@ -16,6 +16,7 @@ libsysprof_testsuite = { 'test-allocs-by-func' : {'skip': true}, 'test-callgraph' : {'skip': true}, 'test-capture-model' : {'skip': true}, + 'test-cplusplus' : {'cpp': true}, 'test-elf-loader' : {'skip': true}, 'test-leak-detector' : {'skip': true}, 'test-list-counters' : {'skip': true}, @@ -41,10 +42,18 @@ libsysprof_testsuite_deps = [ ] foreach test, params: libsysprof_testsuite - test_exe = executable(test, '@0@.c'.format(test), - c_args: libsysprof_testsuite_c_args, - dependencies: libsysprof_testsuite_deps, - ) + if params.get('cpp', false) + test_exe = executable(test, '@0@.cpp'.format(test), + cpp_args: libsysprof_testsuite_c_args, + dependencies: libsysprof_testsuite_deps, + ) + else + test_exe = executable(test, '@0@.c'.format(test), + c_args: libsysprof_testsuite_c_args, + dependencies: libsysprof_testsuite_deps, + ) + endif + if not params.get('skip', false) test(test, test_exe, env: libsysprof_test_env) endif diff --git a/src/libsysprof/tests/test-cplusplus.cpp b/src/libsysprof/tests/test-cplusplus.cpp new file mode 100644 index 00000000..d23e57ec --- /dev/null +++ b/src/libsysprof/tests/test-cplusplus.cpp @@ -0,0 +1,17 @@ +/* + * Copyright 2024 Simon McVittie + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +#include + +#undef _NDEBUG +#include + +int +main (G_GNUC_UNUSED int argc, + G_GNUC_UNUSED char *argv[]) +{ + assert (sysprof_callgraph_flags_get_type () != 0); + return 0; +}