summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeTests
Commit message (Collapse)AuthorAgeFilesLines
* 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().
* | Add tests for list() invalid argumentsPetr Kmoch2012-11-0210-0/+39
| | | | | | | | Add tests for error reporting when list() arguments are invalid.
* | Add tests for list() argument countPetr Kmoch2012-11-026-0/+49
| | | | | | | | | | Add test for error reporting when list() subcommands have wrong number of arguments.
* | CMakeTests: allow to call the check_cmake_test macro with a given fileRolf Eike Beer2012-11-021-24/+29
|/ | | | | This allows to generate a lot of simple files directly in the test tree instead of having them all checked in.
* file(DOWNLOAD): Change EXPECTED_HASH to take ALGO=valueBrad King2012-09-191-6/+6
| | | | | | Make the EXPECTED_HASH option take only a single value instead of two to avoid handling sub-keyword arguments. This is also consistent with URL_HASH in ExternalProject.
* Merge topic 'if-version-depth'David Cole2012-09-181-0/+7
|\ | | | | | | | | dfa0ebd if: Compare up to 8 components in VERSION tests
| * if: Compare up to 8 components in VERSION testsBrad King2012-09-111-0/+7
| | | | | | | | | | | | | | | | | | | | Extend the number of components tested by if(... VERSION_LESS ...) if(... VERSION_EQUAL ...) if(... VERSION_GREATER ...) from 4 to 8. The latter is a more extreme maximum.
* | file(DOWNLOAD): Generalize EXPECTED_MD5 to EXPECTED_HASHBill Hoffman2012-09-111-0/+53
|/ | | | Add support for SHA algorithms.
* Merge topic 'cmake-platform-info-version'Brad King2012-08-301-1/+1
|\ | | | | | | | | | | | | e5fee8a Store ABI detection results in compiler information files 3df81b4 Move CMAKE_<LANG>_COMPILER_WORKS to compiler information files 7195aca Make platform information files specific to the CMake version
| * Make platform information files specific to the CMake versionBrad King2012-08-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the top of a build tree we configure inside the CMakeFiles directory files such as "CMakeSystem.cmake" and "CMake<lang>Compiler.cmake" to save information detected about the system and compilers in use. The method of detection and the exact results store varies across CMake versions as things improve. This leads to problems when loading files configured by a different version of CMake. Previously we ignored such existing files only if the major.minor part of the CMake version component changed, and depended on the CMakeCache.txt to tell us the last version of CMake that wrote the files. This led to problems if the user deletes the CMakeCache.txt or we add required information to the files in a patch-level release of CMake (still a "feature point" release by modern CMake versioning convention). Ensure that we always have version-consistent platform information files by storing them in a subdirectory named with the CMake version. Every version of CMake will do its own system and compiler identification checks even when a build tree has already been configured by another version of CMake. Stored results will not clobber those from other versions of CMake which may be run again on the same tree in the future. Loaded results will match what the system and language modules expect. Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to CMAKE_PLATFORM_INFO_DIR to clarify its purpose. The new variable points at the version-specific directory while the old variable did not.
* | CMake.List test: explicitely test with lists containing only an empty stringRolf Eike Beer2012-08-151-0/+11
|/
* Remove CMake-language block-end command argumentsKitware Robot2012-08-1310-49/+49
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-134-59/+59
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-1/+1
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* Merge topic 'test-getpropery'David Cole2012-03-0616-0/+122
|\ | | | | | | | | b43cd12 add test for get_property() errors
| * add test for get_property() errorsRolf Eike Beer2012-03-0416-0/+122
| |
* | Merge topic 'remove-CheckSourceTree-cvs-support'David Cole2012-03-062-85/+7
|\ \ | |/ |/| | | | | 9012be2 CheckSourceTree: Remove CVS checkout support (#13001)
| * CheckSourceTree: Remove CVS checkout support (#13001)Brad King2012-03-022-85/+7
| | | | | | | | | | | | | | We no longer support CVS checkouts from the Git repository. Drop the case from the CheckSourceTree test. This will also prevent the test from running and failing when CVS is found but Git is not.
* | add testcases for while()/endwhile() errorsRolf Eike Beer2012-03-017-0/+60
|/
* fix uninitialized var in if(NOT foo bar STREQUAL "foo bar")Rolf Eike Beer2012-01-222-0/+10
| | | | Also adds test to verify this.
* Merge topic 'newline-style'David Cole2011-12-015-0/+38
|\ | | | | | | | | | | | | | | | | ac2e45d Provide std::ios_base typedef on GCC < 3 28c46ca cmNewLineStyle: Use cmStandardIncludes.h 75e83e9 cmNewLineStyle: Remove trailing comma in enum be6502c bootstrap: Include cmNewLineStyle in build a087490 Add NEWLINE_STYLE option to configure_file (#3957)
| * Add NEWLINE_STYLE option to configure_file (#3957)Peter Kuemmel2011-11-285-0/+38
| |
* | Fix CMake.File hash test for CRLF checkoutsBrad King2011-11-1611-14/+16
| | | | | | | | | | Use a dedicated test input file for the file() hash API tests. Set attribute crlf=input so it is always checked out correctly.
* | Add string(MD5) and string(SHA*) commands to compute hashesBrad King2011-11-1610-0/+47
| | | | | | | | | | Provide a CMake-language binding to these cryptographic hashes. Add a string() command API for MD5, SHA1, SHA224, SHA256, SHA384, and SHA512.
* | Add file(SHA*) commands to compute cryptographic hashesBrad King2011-11-166-0/+25
| | | | | | | | Add a file() command API for SHA1, SHA224, SHA256, SHA384, and SHA512.
* | Add file(MD5) command to compute cryptographic hashBrad King2011-11-167-1/+22
|/ | | | | Provide a CMake-language binding to the md5sum function previously available only by "cmake -E md5sum".