|
|
|
project('dolphin option', 'c')
|
|
|
|
|
|
|
|
d = disabler()
|
|
|
|
|
|
|
|
d2 = dependency(d)
|
|
|
|
d3 = (d == d2)
|
|
|
|
d4 = d + 0
|
|
|
|
d5 = d2 or true
|
|
|
|
|
|
|
|
has_not_changed = false
|
|
|
|
if is_disabler(d)
|
|
|
|
has_not_changed = true
|
|
|
|
else
|
|
|
|
has_not_changed = true
|
|
|
|
endif
|
|
|
|
assert(has_not_changed, 'Disabler has changed.')
|
|
|
|
|
|
|
|
assert(is_disabler(d), 'Disabler was not identified correctly.')
|
|
|
|
assert(is_disabler(d2), 'Function laundered disabler was not identified correctly.')
|
|
|
|
assert(is_disabler(d3), 'Disabler comparison should yield disabler.')
|
|
|
|
assert(is_disabler(d4), 'Disabler addition should yield disabler.')
|
|
|
|
assert(is_disabler(d5), 'Disabler logic op should yield disabler.')
|
|
|
|
|
|
|
|
assert(d, 'Disabler did not cause this to be skipped.')
|
|
|
|
assert(d2, 'Function laundered disabler did not cause this to be skipped.')
|
|
|
|
assert(d3, 'Disabler comparison should yield disabler and thus this would not be called.')
|
|
|
|
assert(d4, 'Disabler addition should yield disabler and thus this would not be called.')
|
|
|
|
assert(d5, 'Disabler logic op should yield disabler and thus this would not be called.')
|
|
|
|
|
|
|
|
number = 0
|
|
|
|
|
|
|
|
if d
|
|
|
|
number = 1
|
|
|
|
else
|
|
|
|
number = 2
|
|
|
|
endif
|
|
|
|
|
|
|
|
has_not_changed = false
|
|
|
|
if is_disabler(number)
|
|
|
|
has_not_changed = true
|
|
|
|
else
|
|
|
|
has_not_changed = true
|
|
|
|
endif
|
|
|
|
assert(has_not_changed, 'Number has changed.')
|
|
|
|
|
|
|
|
assert(not is_disabler(number), 'Number should not be a disabler.')
|
|
|
|
assert(number == 0, 'Plain if handled incorrectly, value should be 0 but is @0@'.format(number))
|
|
|
|
|
|
|
|
if d.found()
|
|
|
|
number = 1
|
|
|
|
else
|
|
|
|
number = 2
|
|
|
|
endif
|
|
|
|
|
|
|
|
assert(number == 2, 'If found handled incorrectly, value should be 2 but is @0@'.format(number))
|
|
|
|
|
|
|
|
dep = dependency('notfounddep', required : false, disabler : true)
|
|
|
|
app = executable('myapp', 'notfound.c', dependencies : [dep])
|
|
|
|
assert(is_disabler(app), 'App is not a disabler.')
|
|
|
|
app = executable('myapp', 'notfound.c', dependencies : [[dep]])
|
|
|
|
assert(is_disabler(app), 'App is not a disabler.')
|
|
|
|
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
dep = cc.find_library('notfounddep', required : false, disabler : true)
|
|
|
|
app = executable('myapp', 'notfound.c', dependencies : [dep])
|
|
|
|
assert(is_disabler(app), 'App is not a disabler.')
|
|
|
|
|
|
|
|
dep = find_program('donotfindme', required : false, disabler : true)
|
|
|
|
app = executable('myapp', 'notfound.c', dependencies : [dep])
|
|
|
|
assert(is_disabler(app), 'App is not a disabler.')
|
|
|
|
|
|
|
|
has_not_changed = false
|
|
|
|
if is_disabler(app)
|
|
|
|
has_not_changed = true
|
|
|
|
else
|
|
|
|
has_not_changed = true
|
|
|
|
endif
|
|
|
|
assert(has_not_changed, 'App has changed.')
|
|
|
|
|
|
|
|
if_is_disabled = true
|
|
|
|
if disabler()
|
|
|
|
if_is_disabled = false
|
|
|
|
else
|
|
|
|
if_is_disabled = false
|
|
|
|
endif
|
|
|
|
assert(if_is_disabled, 'Disabler in "if condition" must skip both blocks')
|
|
|
|
|
|
|
|
if not disabler()
|
|
|
|
if_is_disabled = false
|
|
|
|
else
|
|
|
|
if_is_disabled = false
|
|
|
|
endif
|
|
|
|
assert(if_is_disabled, 'Disabler in "if not condition" must skip both blocks')
|
|
|
|
|
|
|
|
if disabler() == 1
|
|
|
|
if_is_disabled = false
|
|
|
|
else
|
|
|
|
if_is_disabled = false
|
|
|
|
endif
|
|
|
|
assert(if_is_disabled, 'Disabler in "if a==b" must skip both blocks')
|
|
|
|
|
|
|
|
loops = 0
|
|
|
|
disablers = 0
|
|
|
|
foreach i : [true, disabler(), true]
|
|
|
|
loops += 1
|
|
|
|
if is_disabler(i)
|
|
|
|
disablers += 1
|
|
|
|
endif
|
|
|
|
endforeach
|
|
|
|
assert(loops == 3, 'Disabler in foreach array')
|
|
|
|
assert(disablers == 1, 'Disabler in foreach array')
|
|
|
|
|
|
|
|
loops = 0
|
|
|
|
disablers = 0
|
|
|
|
foreach k, i : {'a': true, 'b': disabler(), 'c': true}
|
|
|
|
loops += 1
|
|
|
|
if is_disabler(i)
|
|
|
|
disablers += 1
|
|
|
|
endif
|
|
|
|
endforeach
|
|
|
|
assert(loops == 3, 'Disabler in foreach dict')
|
|
|
|
assert(disablers == 1, 'Disabler in foreach dict')
|