summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeTests
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Tests: Fix CheckSourceTree test when build is under source (#15566)Brad King2015-05-141-1/+11
| | | | | | Since the build tree will populate content under the source tree the test cannot reliably check that the source tree is pristine. Simply skip most of the test in this case.
* Tests: Fix CMake.ELF test with read-only source (#15489)Bill Newcomb2015-04-011-1/+1
| | | | | | | When the cmake sources are all set to read-only (e.g. after importing into perforce), the CMake.ELF test fails because the copy of the binary is also read-only and cannot be modified. Fix this by copying the binary without source permissions.
* Tests: Add more signature tests to RunCMake.configure_file testBrad King2015-03-0910-66/+0
| | | | | | | Move the test cases from Tests/CMakeTests/ConfigureFileTest.cmake.in over to use the RunCMake.configure_file infrastructure. This does much more robust verification of CMake output for each test case, and would have caught the regression fixed in our parent commit.
* Tests: Fix CheckSourceTree test for newer GitBrad King2014-12-161-2/+2
| | | | | The output of 'git status' no longer starts each line in '#'. Match that optionally.
* string: Tolerate SUBSTRING length exceeding end indexDomen Vrankar2014-11-132-6/+9
| | | | | | string SUBSTRING command now ignores length if it points past end of string and uses end of string instead. String SUBSTRING tests now cover more corner cases.
* cmSystemTools: reimplement verson comparison without sscanf()Rolf Eike Beer2014-10-311-0/+2
| | | | | This now has the advantage that it works with version strings with any number of components.
* extend the testing for version comparisonRolf Eike Beer2014-10-291-6/+80
| | | | | This now checks also the negative outcome of the comparision operation, and adds a bunch more different cases.
* Replace string(REGEX REPLACE) with string(REPLACE) where possibleRolf Eike Beer2014-04-141-2/+2
| | | | The simple replacement is much faster.
* Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex)Rolf Eike Beer2014-04-141-2/+2
| | | | | | The matches have already been calculated and can simply be taken from CMAKE_MATCH_n variables. This avoids multiple compilations of the same or very similar regular expressions.
* file DOWNLOAD: Test non-zero return status.Matt McCormick2014-01-161-0/+13
|
* file DOWNLOAD: Add test for bad hash.Matt McCormick2014-01-162-0/+14
|
* Drop use of configure_file IMMEDIATE optionDaniele E. Domenichelli2013-11-131-1/+1
| | | | | | Since commit 7d47c693 (Drop compatibility with CMake < 2.4, 2013-10-08) we no longer need to use the configure_file IMMEDIATE option to support compatibility modes less than 2.0.
* get_property: Drop test for builtin property documentationBrad King2013-10-161-11/+0
| | | | | Property documentation is no longer builtin, so the get_property command will be unable to return the documentation. Drop the test for it.
* Tests: Verify policies are introduced only in "official" versionsDavid Cole2013-08-282-0/+163
| | | | | | | | | | | | | | | | | | | | | Add the CMake.PolicyCheck test. This test uses "git grep" to look for policies added in a "dated" version of CMake. It will fail if a policy is added as of, for example, CMake 2.8.11.20130828. The intent is to prevent such constructs from making it into an "official" release. Three instances actually appeared in the first attempted release candidate for 2.8.12. This test may sometimes yield false positives. After all, it's just using a regular expression to detect this condition, and something in a comment could possibly match it. As of right now, that's not true, but it's easy to imagine such a comment being added. The new test may also not catch all future problems of this sort. However, it will catch problems of this sort for all code that follows the present layout style in Source/cmPolicies.cxx.
* Add cmake_host_system_information commandNils Gladitz2013-06-196-0/+42
| | | | | | Expose the internal system information API to the CMake language. For example, it is useful to see how much memory the system has available to estimate an upper limit of tests that can run in parallel.
* Merge branch 'master' into escape-regex-specials-in-pathRolf Eike Beer2013-06-031-0/+1
|\ | | | | | | | | Resolve conflicts in Tests/CTestTestMemcheck/CMakeLists.txt by combining changes from both sides.
| * Sanitize linker name to parse implicit link line (#14154)Brad King2013-05-171-0/+1
| | | | | | | | | | | | | | | | Teach CMakeParseImplicitLinkInfo to convert the CMAKE_LINKER file name to a regular expression that matches only the original name. Escape special characters like '+' so they are not treated as regex syntax. Extend the ImplicitLinkInfoTest to test handling of a CMAKE_LINKER value with many special characters.
* | Fix test failures caused by regexp-sensitive characters in the build pathsModestas Vainius2013-06-034-28/+41
|/ | | | | | | | | | | | | | | | | | Checkout [1] as an example of the test failures. In that particular cases, the failures is caused by the plus sign in the path being pass unescaped (buildd-cmake_2.8.9-1~bpo60+1-armel-3Lvkef) to the regexp. In addition to failures in the log, the following new tests also fail in 2.8.11: 243 - CTestTestMemcheckUnknown (Failed) 244 - CTestTestMemcheckUnknownQuoted (Failed) 248 - CTestTestMemcheckDummyValgrindFailPre (Failed) 249 - CTestTestMemcheckDummyValgrindFailPost (Failed) 250 - CTestTestMemcheckDummyPurify (Failed) 251 - CTestTestMemcheckDummyBC (Failed) 253 - CMake.List (Failed) [1] https://buildd.debian.org/status/fetch.php?pkg=cmake&arch=armel&ver=2.8.9-1~bpo60%2B1&stamp=1369243896
* Merge topic 'implicit-lib-canonical-path'Brad King2013-02-081-0/+6
|\ | | | | | | | | 10e8b2d Normalize full paths in implicit link library list
| * Normalize full paths in implicit link library listBrad King2013-02-061-0/+6
| | | | | | | | | | | | | | | | | | | | Teach CMakeParseImplicitLinkInfo to convert implicit link library full paths to a canonical form. This makes them more reproducible in case different language compiler front-ends add the same library by different paths e.g. ".../libA.a" and "...//libA.a". Add a case to the CMake.ImplicitLinkInfo test to cover removal of extra slashes from both library and directory paths.
* | ProcessorCount test: require SystemInformation process to workRolf Eike Beer2013-01-241-1/+8
| | | | | | | | | | Currently this silently fails on some systems. Make sure those things get noticed so we can fix that.
* | ProcessorCount test: fix path to cmsysTestsCxx executableRolf Eike Beer2013-01-242-3/+4
| | | | | | | | | | Use a generator expression to get the real place of this target instead of guessing it wrong.
* | OS X: Detect implicit linker framework search pathsBrad King2012-12-111-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we hard-coded a list of implicit framework directories but did not account for CMAKE_OSX_SYSROOT or for changes to the list across OS X versions. Instead we should automatically detect the framework directories for the active toolchain. The parent commit added the "-Wl,-v" option to ask "ld" to print its implicit directories. It displays a block such as: Framework search paths: /... Parse this block to extract the list of framework directories. Detection may fail on toolchains that do not list their framework directories, such as older OS X linkers. Always treat the paths <sdk>/Library/Frameworks <sdk>/System/Library/Frameworks <sdk>/Network/Library/Frameworks # Older OS X only /System/Library/Frameworks as implicit. Note that /System/Library/Frameworks should always be considered implicit so that frameworks CMake finds there will not override the SDK copies.
* | OS X: Detect implicit link directories on modern toolchainsBrad King2012-12-111-0/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We detect the implicit link directories for the toolchain by adding a flag to get verbose output from the compiler front-end while linking the ABI detection binary. Newer OS X toolchains based on Clang do not add the implicit link directories with -L options to their internal invocation of "ld". Instead they use a linker that comes with the toolchain and is already configured with the proper directories. Add the "-Wl,-v" option to ask "ld" to print its implicit directories. It displays them in a block such as: Library search paths: /... Parse this block to extract the implicit link directories. While at it, remove the checks introduced by commit efaf335b (Skip implicit link information on Xcode, 2009-07-23) and commit 5195a664 (Skip implicit link info for multiple OS X archs, 2009-09-22). Discard the non-system link directories added by Xcode. Discard all detected implicit libraries in the multi-architecture case but keep the directories. The directories are still useful without the libraries just to suppress addition of explicit -L options for them.
* | CMake: Stylistic changes and documentation tweaksDavid Cole2012-12-051-2/+0
| | | | | | | | ...for the contributed file and string TIMESTAMP sub-commands.
* | CMake: Add TIMESTAMP subcommand to string and file commandsNils Gladitz2012-12-0517-0/+99
| |
* | Add several get_property() testsPetr Kmoch2012-11-021-0/+17
| | | | | | | | Add tests for some get_property() uses not covered by existing tests.
* | GetProperty test: move doc property tests into main processRolf Eike Beer2012-11-022-16/+11
| | | | | | | | | | They will not raise an error in the normal case so we do not need to run them in their own process.
* | list: add tests for CMP0007 behaviorRolf Eike Beer2012-11-022-0/+20
| |
* | Add test to secure the file(GLOB empty) behavior.Amine Chadly2012-11-021-0/+5
| |
* | file: remove dead codeAmine Chadly2012-11-023-0/+9
| | | | | | | | | | | | The file command requires at least two arguments, so guarding the GLOB and MAKE_DIRECTORY command is not necessary. Changed it for an assert to keep the protection.
* | Consolidate list() argument count testingPetr Kmoch2012-11-022-12/+20
| | | | | | | | Move test for list() argument count >= 2 to InitialPass().