summaryrefslogtreecommitdiffstats
path: root/Tests/ExternalProjectUpdate
Commit message (Collapse)AuthorAgeFilesLines
* ExternalProject: Avoid reconfigure when updates are disconnectedCraig Scott2023-05-231-16/+26
| | | | | | | | | | | | | | | | | | | | When UPDATE_DISCONNECTED is true, create separate update_disconnected and patch_disconnected targets which have ALWAYS set to false. Make the configure step depend on patch_disconnected in this case too. This ensures the configure, build, install and test steps are not executed unnecessarily when updates are disconnected. Make the update and patch commands depend on the details of those steps. This ensures they are re-executed when any of those details change, even if updates are disconnected. Allow updates to occur even if UPDATE_DISCONNECTED is true, but don't contact the remote in that case. If asked to update to a ref that isn't known locally, that is now detected and causes a fatal error when updates are disconnected. Previously, the build would have silently and erroneously continued to use the old ref. Fixes: #16419, #19703, #21146
* Tests: Reduce warning noise in ExternalProjectUpdate testCraig Scott2023-05-211-1/+4
|
* Tests: Bump CMake minimum required in tests to 3.5Brad King2023-03-011-1/+1
| | | | | | | | | | | | | | | | | | | CMake 3.27 deprecates compatibility with CMake < 3.5. Update tests that do not cover older interfaces to avoid the deprecation warning. Follow the pattern from: * commit 7b07ccdd2b (Tests/*Only: Update cmake_minimum_required versions, 2020-06-15, v3.19.0-rc1~629^2~1) * commit 72e7c45e98 (Tests: Bump CMake minimum required in tests to 2.8.12, 2020-12-22, v3.20.0-rc1~224^2) * commit f6b4db365a (Tests: bump cmake_minimum_required version to 2.8.12, 2021-04-04, v3.21.0-rc1~372^2) Also remove explicit `cmake_policy` settings made redundant by the version.
* ExternalProject: Improve robustness of update stepCraig Scott2021-01-281-1/+0
| | | | | | | | | | | | | | | | | | Refactor the update logic to make it easier to follow. The following fixes/improvements are some consequences of this change: * Absorb a confusing git checkout failure message when the failure is allowed and we act on that failure appropriately. * Fix an unnecessary fetch in some scenarios when checking out a git hash we already have locally. * Stash and restore any local changes even when not rebasing. * Avoid unsafe rebasing where we are not on a branch that is already tracking the requested branch. * When fetching, use --tags --force to ensure we get all the tags and commits leading up to them regardless of whether the tags are on branches or not. Also update our local tags if they move on the remote. Fixes: #20677
* Tests: Prevent the noisy CMP0114 warnings in ExternalProjectUpdate testCraig Scott2021-01-281-0/+5
|
* Merge topic 'FindGit-cache-version'Brad King2021-01-212-17/+5
|\ | | | | | | | | | | | | | | 76fdeb6d13 Tests: FindGit already provides the git version, re-use it 315a200f0c FindGit: Cache the GIT_EXECUTABLE version for the current run Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5712
| * Tests: FindGit already provides the git version, re-use itCraig Scott2021-01-192-17/+5
| |
* | ExternalProject: Don't git stash ignored filesCraig Scott2021-01-162-5/+17
|/ | | | | | The change to the binary gitrepo.tgz file adds a commit which adds a .gitignore file. Fixes: #21278
* 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.
* ExternalProject: Use CMP0114 NEW behavior with Xcode "new build system"Brad King2020-09-181-3/+16
| | | | | | | The ExternalProject module cannot be implemented in the Xcode "new build system" without using CMP0114's NEW behavior. When configuring for that build system, warn if the policy is not set to NEW and use NEW behavior anyway.
* ExternalProject: Remote checkout needs to include the remote nameCraig Scott2020-05-291-3/+10
| | | | | | | | | | Commit 0aea435aa1 (ExternalProject: Provide choice of git update strategies, 2020-02-12) added the git update strategies, but the CHECKOUT strategy was not handling remote refs correctly. The local ref would be checked out instead and no warning or error would have been emitted. The test that should have caught this was also malformed and did not actually move the local master branch as intended.
* ExternalProject: Provide choice of git update strategiesCraig Scott2020-05-232-9/+48
| | | | | Fixes: #16528 Co-Authored-By: Michael Wake <macwake@gmail.com>
* ExternalProject: Always run update step with non-empty UPDATE_COMMANDBrad King2016-05-181-0/+12
| | | | | | | | The purpose of the `update` step is to run an update on each build (subject to `UPDATE_DISCONNECTED`). This is done for version-controlled source directories. We should do it for a custom `UPDATE_COMMAND` too. In particular, when `UPDATE_DISCONNECTED` is used we expect the `skip-update` step to exist.
* Fix spelling typos in comments and documentation (#16037)Felix Geyer2016-03-291-1/+1
| | | | | The Debian package checker tool (lintian) detected several typos in CMake.
* ExternalProject: Add unit tests for UPDATE_DISCONNECTEDDaniele E. Domenichelli2014-11-062-0/+108
|
* ExternalProject: Add unit testsDaniele E. Domenichelli2014-11-031-1/+2
|
* Tests: Use -A option to pass generator platform selectionBrad King2014-09-151-1/+1
| | | | This is less verbose than defining CMAKE_GENERATOR_PLATFORM.
* Tests: Add generator platform supportBrad King2014-09-101-0/+1
| | | | | Propagate CMAKE_GENERATOR_PLATFORM through the test hierarchy so that all tests can build with the selected generator platform, if any.
* Tests: Drop CMAKE_TEST_GENERATOR(|_TOOLSET) variablesBrad King2014-03-031-1/+1
| | | | s/CMAKE_TEST_GENERATOR/CMAKE_GENERATOR/g
* Tests: Add generator toolset supportBrad King2013-02-071-1/+1
| | | | | Propagate CMAKE_GENERATOR_TOOLSET through the test hierarchy so that all tests can build with the selected generator toolset, if any.
* ExternalProjectUpdateTest: Only support Git 1.6.5 and greater.Matt McCormick2012-11-131-0/+18
|
* ExternalProject: Verify when a fetch occurs during update test.Matt McCormick2012-11-131-10/+26
| | | | | | | The performance feature of only performing a git fetch when needed during the ExternalProject update step is verified during the test. A fetch is identified by removing the FETCH_HEAD file and checking for its reincarnation.
* ExternalProject: Make sure the ExternalProjectUpdate setup is available.Matt McCormick2012-11-131-1/+1
| | | | | This prepares the numberous tests that occur in the ExternalProjectUpdate test. The tests were passing previously because a fresh build was not performed.
* ExternalProject: Always do a git fetch for a remote ref.Matt McCormick2012-11-131-1/+3
| | | | | Remote git refs always require a git fetch, because the remote may move around where the ref points.
* ExternalProject: Add tests for UPDATE_COMMAND.Matt McCormick2012-11-133-0/+152
Tests are added for UPDATE_COMMAND to ensure it is working properly. Testing infrastructure is added along with tests for Git, but tests for other version control systems could easily be added in the future.