diff options
-rw-r--r-- | test cases/common/233 link depends indexed custom target/check_arch.py | 32 | ||||
-rw-r--r-- | test cases/common/233 link depends indexed custom target/meson.build | 6 |
2 files changed, 38 insertions, 0 deletions
diff --git a/test cases/common/233 link depends indexed custom target/check_arch.py b/test cases/common/233 link depends indexed custom target/check_arch.py new file mode 100644 index 0000000..2e09f35 --- /dev/null +++ b/test cases/common/233 link depends indexed custom target/check_arch.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 + +import re +import sys +import shutil +import subprocess + +exepath = sys.argv[1] +want_arch = sys.argv[2] +dummy_output = sys.argv[3] + +with open(dummy_output, 'w') as f: + f.write('') + +if not shutil.which('dumpbin'): + print('dumpbin not found, skipping') + sys.exit(0) + +out = subprocess.check_output(['dumpbin', '/HEADERS', exepath], + universal_newlines=True) +for line in out.split('\n'): + m = re.match(r'.* machine \(([A-Za-z0-9]+)\)$', line) + if m: + arch = m.groups()[0].lower() + +if arch == 'arm64': + arch = 'aarch64' +elif arch == 'x64': + arch = 'x86_64' + +if arch != want_arch: + raise RuntimeError('Wanted arch {} but exe uses {}'.format(want_arch, arch)) diff --git a/test cases/common/233 link depends indexed custom target/meson.build b/test cases/common/233 link depends indexed custom target/meson.build index 5c066e9..c41c4c1 100644 --- a/test cases/common/233 link depends indexed custom target/meson.build +++ b/test cases/common/233 link depends indexed custom target/meson.build @@ -15,5 +15,11 @@ exe = executable('foo', 'foo.c', link_depends: dep_files[1], c_args: ['-DDEPFILE="' + dep_files[0].full_path()+ '"']) +check_arch = find_program('check_arch.py') +custom_target('check-arch', + command: [check_arch, exe, host_machine.cpu_family(), '@OUTPUT@'], + build_by_default: true, + output: 'dummy.txt') + # check that dep_file1 exists, which means that link_depends target ran test('runtest', exe) |