tests/windows/5: Skip if build_to_src has spaces

In this case, the arguments to MinGW windres will contain spaces and
the test will definitely fail, so just skip it.

This effectively means that manually running the test will be fine, but
running it via run_project_tests.py will always fail (skip).
pull/1346/head
Nirbheek Chauhan 8 years ago
parent dc5b0a62f6
commit 87f35d7118
  1. 59
      test cases/windows/5 resources/meson.build

@ -1,5 +1,64 @@
project('winmain', 'c')
# MinGW windres has a bug due to which it doesn't parse args with space properly:
# https://github.com/mesonbuild/meson/pull/1346
# https://sourceware.org/bugzilla/show_bug.cgi?id=4933
if meson.get_compiler('c').get_id() == 'gcc'
# Construct build_to_src and skip this test if it has spaces
# because then the -I flag to windres will also have spaces
# and we know the test will fail
src_parts = meson.source_root().split('/')
build_parts = meson.build_root().split('/')
# Get the common path (which might just be '/' or 'C:/')
common = []
done = false
count = 0
if src_parts.length() > build_parts.length()
parts = build_parts
other = src_parts
else
parts = src_parts
other = build_parts
endif
foreach part : parts
if not done and part == other.get(count)
common += [part]
else
done = true
endif
count += 1
endforeach
# Create path components to go down from the build root to the common path
count = 0
rel = build_parts
foreach build : build_parts
if count < build_parts.length() - common.length()
rel += ['..']
endif
count += 1
endforeach
# Create path components to go up from the common path to the build root
count = 0
foreach src : src_parts
if count >= common.length()
rel += [src]
endif
count += 1
endforeach
build_to_src = '/'.join(rel)
if build_to_src.contains(' ')
message('build_to_src is: ' + build_to_src)
error('MESON_SKIP_TEST build_to_src has spaces')
endif
# Welcome to the end of this conditional.
# We hope you never have to implement something like this.
endif
subdir('inc')
subdir('res')

Loading…
Cancel
Save