diff options
Diffstat (limited to 'test cases/common/30 sizeof')
-rw-r--r-- | test cases/common/30 sizeof/config.h.in | 2 | ||||
-rw-r--r-- | test cases/common/30 sizeof/meson.build | 33 | ||||
-rw-r--r-- | test cases/common/30 sizeof/prog.c.in | 15 |
3 files changed, 50 insertions, 0 deletions
diff --git a/test cases/common/30 sizeof/config.h.in b/test cases/common/30 sizeof/config.h.in new file mode 100644 index 0000000..a442e8a --- /dev/null +++ b/test cases/common/30 sizeof/config.h.in @@ -0,0 +1,2 @@ +#define INTSIZE @INTSIZE@ +#define WCHARSIZE @WCHARSIZE@ diff --git a/test cases/common/30 sizeof/meson.build b/test cases/common/30 sizeof/meson.build new file mode 100644 index 0000000..9de5b78 --- /dev/null +++ b/test cases/common/30 sizeof/meson.build @@ -0,0 +1,33 @@ +project('sizeof', 'c', 'cpp') + +# Test with C +cc = meson.get_compiler('c') + +intsize = cc.sizeof('int') +wcharsize = cc.sizeof('wchar_t', prefix : '#include<wchar.h>') + +cd = configuration_data() +cd.set('INTSIZE', intsize) +cd.set('WCHARSIZE', wcharsize) +cd.set('CONFIG', 'config.h') +configure_file(input : 'config.h.in', output : 'config.h', configuration : cd) +s = configure_file(input : 'prog.c.in', output : 'prog.c', configuration : cd) + +e = executable('prog', s) +test('sizeof test', e) + +# Test with C++ +cpp = meson.get_compiler('cpp') + +intsize = cpp.sizeof('int') +wcharsize = cpp.sizeof('wchar_t', prefix : '#include<wchar.h>') + +cdpp = configuration_data() +cdpp.set('INTSIZE', intsize) +cdpp.set('WCHARSIZE', wcharsize) +cdpp.set('CONFIG', 'config.hpp') +configure_file(input : 'config.h.in', output : 'config.hpp', configuration : cdpp) +spp = configure_file(input : 'prog.c.in', output : 'prog.cc', configuration : cdpp) + +epp = executable('progpp', spp) +test('sizeof test c++', epp) diff --git a/test cases/common/30 sizeof/prog.c.in b/test cases/common/30 sizeof/prog.c.in new file mode 100644 index 0000000..44918ec --- /dev/null +++ b/test cases/common/30 sizeof/prog.c.in @@ -0,0 +1,15 @@ +#include "@CONFIG@" +#include <stdio.h> +#include <wchar.h> + +int main(void) { + if(INTSIZE != sizeof(int)) { + fprintf(stderr, "Mismatch: detected int size %d, actual size %d.\n", INTSIZE, (int)sizeof(int)); + return 1; + } + if(WCHARSIZE != sizeof(wchar_t)) { + fprintf(stderr, "Mismatch: detected wchar size %d, actual size %d.\n", WCHARSIZE, (int)sizeof(wchar_t)); + return 1; + } + return 0; +} |