Tests: Add case for legacy source file property behavior

The change in commit 3b95ab5693 (Performance: Improve efficiency of
source file lookup in cmMakefile, 2017-08-17) broke some legacy behavior
of source file properties in which the order sources are first resolved
with extensions affects how setting properties without extensions works.
It has been reverted for now, but the discovery was made after merging
because the broken case was not covered by our test suite.

Add a test case representing the legacy behavior.

Issue: #15208
This commit is contained in:
Brad King 2017-09-25 08:32:29 -04:00
parent 1604716dfc
commit a7005c985d
2 changed files with 17 additions and 1 deletions

View File

@ -3,4 +3,10 @@ get_property: --><--
get_source_file_property: -->value<--
get_property: -->value<--
get_source_file_property: -->NOTFOUND<--
get_property: --><--$
get_property: --><--
get_source_file_property: -->value<--
get_property: -->value<--
get_source_file_property: -->NOTFOUND<--
get_property: --><--
get_source_file_property: -->value<--
get_property: -->value<--$

View File

@ -13,3 +13,13 @@ set_source_files_properties(file.c PROPERTIES empty "" custom value)
check_source_file_property(file.c empty)
check_source_file_property(file.c custom)
check_source_file_property(file.c noexist)
# Test strange legacy behavior in which the order in which source files are
# first accessed affects how properties are applied without an extension.
# See also issue #15208.
get_property(lang SOURCE ${CMAKE_CURRENT_BINARY_DIR}/file2.c PROPERTY LANGUAGE)
get_property(lang SOURCE ${CMAKE_CURRENT_BINARY_DIR}/file2.h PROPERTY LANGUAGE)
set_property(SOURCE file2 PROPERTY custom value) # set property without extension
check_source_file_property(file2 custom) # should have property
check_source_file_property(file2.h custom) # should not have property
check_source_file_property(file2.c custom) # should have property