summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeTests
Commit message (Collapse)AuthorAgeFilesLines
* Tests: Convert CMake.ELF to RunCMake.file-RPATH ELF caseBrad King2021-02-036-77/+0
|
* Tests: Add host to ENV{no_proxy} when DNS lookup failure is expectedwilliam.r.dieter2021-01-291-0/+3
| | | | | | | | | | | | | | DNS lookup of an invalid host name fails with a different error in a proxy environment than it does in an environment without proxy. Many tools, including curl, use the `no_proxy` environment variable to provid a list of hosts for which proxy should not be used. To make lookup failure consistent, add invalid host names to the `no_proxy` environment variable in tests that attempt to look up invalid host names. This way the lookup will fail consistently regardless of whether proxy is generally used or not. Signed-off-by: william.r.dieter <william.r.dieter@intel.com>
* list(REMOVE_ITEM): Make removal of an empty item a no-op.Asit Dhal2021-01-121-2/+1
| | | | Fixes: #21663
* Tests: Bump CMake minimum required in tests to 2.8.12Chuck Atkins2020-12-231-1/+1
| | | | | | | Since 3.19, CMake generates a deprecation warning when using a minimum version less than 2.8.12. This eliminates those warnings generated during tests, which are typically hidden from the user and developer but are being generated nonetheless.
* cmListFileCache: Enforce proper nesting of flow control statementsKyle Edwards2020-10-221-44/+16
| | | | Fixes: #19153
* file(DOWNLOAD): Make file argument optionalKyle Edwards2020-07-273-3/+16
|
* list: add NATURAL sorting on SORT sub-commandJohnny Jazeix2020-04-131-0/+23
| | | | Fixes: #20563
* Tests: Make CMake.FileDownload invalid host name case more robustBrad King2020-01-211-2/+2
| | | | | | Use a well-defined `.invalid` top-level domain instead of assuming there is no `.png` top-level domain. Extend the timeout of this one case to 30 seconds to give DNS lookups a chance to fail instead of timing out.
* file(DOWNLOAD): Don't fail if given just a filename to write toJohnny Jazeix2020-01-152-1/+19
| | | | Fixes: #17969
* Tests: Fix CMake.FileDownload test failures not reportedCraig Scott2020-01-152-5/+34
| | | | | | | | Because the PASS_REGULAR_EXPRESSION test property is set, the exit code of the test is ignored, so we can't just rely on using message(SEND_ERROR) or the command itself failing. We have to add an explicit error message for all unexpected status codes and check for such messages with a FAIL_REGULAR_EXPRESSION.
* Tests: Fix CMake.FileDownload test in presence of proxyBrad King2020-01-151-0/+5
| | | | | | We do not actually need to contact any real http servers. The one attempt we make is to an intentionally bad domain name. Unset any proxy configuration that may change behavior.
* Tests: Extend CMake.FileDownload test internal timeoutsBrad King2020-01-151-11/+13
| | | | | | On a busy machine running many tests in parallel the `file(DOWNLOAD)` step can take longer than 2 seconds even to simply copy a file. Raise the timeout to 4 seconds to reduce spurious failures.
* Property: Add INSTALL_REMOVE_ENVIROMENT_RPATH propertyJiang Yue2019-07-251-2/+27
|
* Reduce size of PNG imagesLucy Phipps2019-01-253-10/+10
| | | | | | Use FileOptimizer 13.50.2431 (x86) and ZopfliPNG 1.0.2. Update expected file hashes in tests.
* Remove now-unused code once used on IRIXBrad King2019-01-111-72/+0
| | | | | We dropped support for IRIX as a host platform long ago. Remove some leftover code.
* cmMakefile: Fix @CMAKE_CURRENT_LIST_LINE@ for ExpandVariablesInStringNewArtur Ryt2018-12-122-1/+4
| | | | | | | Added check for variable name in @@ evaluation and test for configuring @CMAKE_CURRENT_LIST_LINE@ with new CMP0053 Fixes: #18646
* cmMakefile: Fix ConfigureString not passing filename and lineArtur Ryt2018-12-122-1/+23
| | | | | | It enables to use CMAKE_CURRENT_LIST_LINE in string(CONFIGURE) Added tests for it for ${} and @@ notattion for old CMP0053 and ${} for new
* list: Allow inserting at the end of a listDaniel Chabrowski2018-07-051-0/+4
| | | | Fixes: #18069
* Tests: Fix CheckSourceTree for in-source non-dashboard buildsIsrael Blancas2018-05-031-3/+1
| | | | | | | | | For in-source builds we must tolerate non-tracked files in the source tree. Previously we only tolerated them for dashboard builds during automated testing, but we should tolerate them for local user builds too. Fixes: #17868
* Exclude "libgcc_eh" library files from implicit link librariesBrad King2018-04-161-0/+6
| | | | | | | | Extend the fix in commit v3.9.6~1^2 (Restore exclusion of "gcc_eh" from implicit link libraries, 2017-11-07) to also exclude `gcc_eh` libraries referenced by absolute path to the library file. Issue: #17436
* Tests: Fix TIMESTAMP-UnixTime test under SOURCE_DATE_EPOCH=1Bernhard M. Wiedemann2018-02-262-4/+4
| | | | | | | | The test was expecting timestamps on day 1 in 1970 to start at 86400 but they actually started at 0. This worked without `SOURCE_DATE_EPOCH=1` because after 1972, leap days compensated the offset. Fixes: #17762
* Merge topic 'implicit-lib-gcceh'Brad King2017-11-081-1/+21
|\ | | | | | | | | | | | | 41aacca7 Restore exclusion of "gcc_eh" from implicit link libraries Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1460
| * Restore exclusion of "gcc_eh" from implicit link librariesChristian Pfeiffer2017-11-081-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.9.0-rc1~148^2 (Do not assume GCC libs are linked by all compilers, 2017-05-05) we no longer filter out all `gcc*` implicit link libraries. This allows mixing of gcc and non-gcc compilers across languages. However, this caused a subtle problem with how GCC makes exception handling symbols available to linked binaries. GCC (at least on MinGW) provides two different libraries with exception handling symbols: * gcc_s: A shared library with -fvisibility=default, used by -shared-libgcc. * gcc_eh: A static library with -fvisibility=hidden, used by -static-libgcc. The C compiler (on MinGW) defaults to -static-libgcc and uses gcc_eh. The C++ compiler defaults to -shared-libgcc and uses gcc_s when linking shared libraries and executables so that exceptions can propagate across shared libraries [1]. When linking a mixed-language binary, the C++ compiler should be used along with its choice of gcc_s. In this case gcc_eh should not be added even though the C compiler implies it because gcc_s supersedes it. Since the above-mentioned change, CMake is adding gcc_eh to C++ link lines that also contain C code on MinGW. This causes both gcc_s and gcc_eh to be used, which is incorrect. We can fix this simply by excluding gcc_eh from the C compiler's implicit link libraries. [1] https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/Link-Options.html#Link-Options Fixes: #17436
* | gitattributes: prefer `eol=lf` to `crlf=input`Ben Boeckel2017-08-231-1/+1
| | | | | | | | The `crlf` attribute is deprecated in Git.
* | CMakePushCheckState: Fix cmake_push_check_state RESET argumentBrad King2017-07-121-0/+22
| | | | | | | | | | | | | | | | | | This option was added by commit v2.8.12~138^2 (Add cmake_reset_check_state() macro, 2013-07-28) but has never worked. Fix the implementation to refer to macro arguments properly (not as normal variables). Fixes: #17048
* | cmake_host_system_information: Add more keywordsFlorian Maushart2017-06-051-0/+19
|/ | | | | Extend the `cmake_host_system_information()` command to add processor identification keywords.
* ImplicitLinkInfo: Add support for PGI on WindowsChristian Pfeiffer2017-05-201-3/+48
| | | | | | | Since PGI does not write linker directives into objects, the necessary libraries have to be parsed from commandline. PGI does however link the Visual C++ runtime libraries, so they have to be filtered out to ensure no collision with settings of other languages can occur.
* Do not assume GCC libs are linked by all compilersChristian Pfeiffer2017-05-051-30/+30
| | | | | Not all compilers link libgcc and libgcc_s causing trouble when linking C++ code with instance PGI Fortran and C compilers.
* separgs: Migrate tests to RunCMake testsChristian Pfeiffer2017-04-262-26/+0
|
* Merge topic 'mac-implicit-link-no-lto-flag'Brad King2017-04-041-0/+6
|\ | | | | | | | | | | | | 53f17333 CMakeParseImplicitLinkInfo: Ignore ld -lto_library flag Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !658
| * CMakeParseImplicitLinkInfo: Ignore ld -lto_library flagBrad King2017-04-031-0/+6
| | | | | | | | | | | | | | The `ld` tool in Xcode 8.3 now has a `-lto_library <path>` flag. Ignore the flag instead of accidentally parsing it as `-l` with `to_library`. Fixes: #16766
* | Tests: Fix CMake.GetPrerequisites test config messageBrad King2017-04-032-9/+3
| | | | | | | | | | | | | | | | Since commit v2.8.11~239^2~1 (ProcessorCount test: fix path to cmsysTestsCxx executable, 2013-01-24) we accidentally printed a literal `${CTEST_CONFIGURATION_TYPE}` instead of the actual build configuration. Update the message to use a generator expression to get the real build configuration used.
* | Make CMAKE_HOST_SYSTEM_NAME available in scripting contextGregor Jasny2017-02-191-1/+0
| |
* | Tests: Fix `file://` URLs given to curlBrad King2017-02-103-3/+12
| | | | | | | | | | | | | | Since upstream curl commit curl-7_52_0~131 (URL-parser: for file://[host]/ URLs, the [host] must be localhost, 2016-11-11) we can no longer use URLs of the form `file://c:/...` on Windows. These worked only accidentally before. Use `file:///c:/...` instead.
* | CMakeDetermineCompilerId: check with and without user-specified flagsMichael Maltese2017-02-061-2/+2
|/ | | | | | | | | | | Clang may raise an error when passed a `-march=` option that doesn't correspond to the current target triple. CMake cannot pass the target triple when determining the compiler id because it doesn't know how yet, but it does pass along user-specified flags. This breaks when those user-specified flags include `-march=`. Fix this use case by also trying to find the compiler id without the user-specified flags. Fixes: #16587
* Tests: make tests pass with SOURCE_DATE_EPOCH setBernhard M. Wiedemann2017-01-301-0/+1
| | | | | | | | | Fix tests to account for commit 243aed52 (cmTimestamp: Support SOURCE_DATE_EPOCH to override current time, 2017-01-25). In openSUSE we are running the test-suite as part of the build and that failed in these two places when building everything with `SOURCE_DATE_EPOCH` set.
* CMakeParseImplicitLinkInfo: Add support for MSVC invoked by CUDA nvccBrad King2017-01-121-0/+7
|
* file: Add support for SHA-3 algorithmsBrad King2016-11-105-0/+20
|
* string: Add support for SHA-3 algorithmsBrad King2016-11-105-0/+20
|
* Tests: Update ModuleNotices test for new noticeBrad King2016-09-271-18/+5
|
* string(TIMESTAMP ...): add '%a' and '%b' format specifiersRuslan Baratov2016-09-122-0/+14
| | | | | %b: Abbreviated month name (e.g. Oct). %a: Abbreviated weekday name (e.g. Fri).
* Add additional <= and >= comparison operatorsChuck Atkins2016-08-091-0/+14
| | | | | This adds the LESS_EQUAL, GREATER_EQUAL, and associated STR and VERSION equivalents to use the combined <= and >= functionality.
* Use string(APPEND) in TestsDaniel Pfeifer2016-07-272-4/+4
| | | | | | | Automate with: find Tests -type f -print0 | xargs -0 perl -i -0pe \ 's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
* CMakeParseImplicitLinkInfo: Exclude libclang_rt librariesBrad King2016-07-111-0/+6
| | | | | | | | These libraries are used for Clang runtime analysis support with flags like `-fsanitize=memory` and are not actually implicitly linked libraries. Fixes #16194.
* PushCheckStateTest: Update test to check CMAKE_EXTRA_INCLUDE_FILESJean-Christophe Fillion-Robin2016-03-311-0/+5
|
* PushCheckStateTest: Test all variables managed by the moduleJean-Christophe Fillion-Robin2016-03-311-9/+43
|
* PushCheckStateTest: Fix syntax warningJean-Christophe Fillion-Robin2016-03-311-2/+2
| | | | | | | This commit fixes the following warning originally introduced in 1325260 (Add macros cmake_push/pop_check_state() as discussed on the list.) Argument not separated from preceding token by whitespace.
* CMake: Extend TIMESTAMP sub-commands with new unix time format specifierJose-Luis Blanco-Claraco2016-02-182-0/+28
| | | | | | | | The new `%s` format specifier is substituted by file()/string() `TIMESTAMP` sub-commands with the number of seconds since unix-epoch (1970-01-01 00:00:00 UTC). Co-Author: Nils Gladitz <nilsgladitz@gmail.com>
* CMakeParseImplicitLinkInfo: Do not match "VAR=..." as link line (#15737)Brad King2015-09-111-0/+7
| | | | | | | | | | | | | | | When compiling with LDFLAGS='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' the compiler output includes a line like COLLECT_GCC_OPTIONS='-specs=/usr/lib/rpm/redhat/redhat-hardened-ld' ... that our link line regex matches due to an argument ending in "-ld". Since it is not really the link line no implicit link information is dectected. Exclude "VAR=..." lines from consideration as link lines to fix this.
* Tests: Move command failure cases into RunCMake infrastructureBrad King2015-07-1438-249/+0
| | | | | | | Move failure cases from the CMake.{If,List,While,GetProperty} tests over to the RunCMake.{if,list,while,get_property} tests to use the more modern infrastructure. This also avoids using REGEX_ESCAPE_STRING to try to regex-match full paths.