summaryrefslogtreecommitdiffstats
path: root/Source/CTest
Commit message (Collapse)AuthorAgeFilesLines
* ctest: Add support for running under a make job server on POSIX systemsBrad King2023-12-032-0/+43
| | | | | Share job slots with the job server by acquiring a token before running each test, and releasing the token when the test finishes.
* cmUVJobServerClient: Add libuv-based job server integration clientBrad King2023-12-032-0/+614
|
* cmCTestMultiProcessHandler: Inline removal of pending test as it startsBrad King2023-11-222-11/+7
| | | | | Avoid searching the entire list of ordered pending tests to remove one when we already know where it is.
* cmCTestMultiProcessHandler: Clarify role of StartTestProcessBrad King2023-11-221-4/+4
| | | | | Focus its role on actually running the test process. Move administrative tasks to the call site.
* cmCTestMultiProcessHandler: Manage concurrency slots with other resourcesBrad King2023-11-221-2/+4
|
* cmCTestMultiProcessHandler: Manage affinity assignments with other resourcesBrad King2023-11-221-21/+23
|
* cmCTestMultiProcessHandler: Simplify test startup batchingBrad King2023-11-214-20/+14
| | | | | | | Once a test is ready to run, count it against the number of tests to start in the current batch whether or not the test process actually starts successfully. If a test process does fail to start, simply schedule a new startup batch on the next loop iteration.
* cmCTestMultiProcessHandler: Start new tests asynchronouslyBrad King2023-11-212-2/+17
| | | | | | | When a test finishes, defer starting new tests until the next loop iteration. That way, if multiple tests finish in a single loop iteration, we can free all of their resources first, and then start a new batch of tests.
* cmCTestMultiProcessHandler: Clarify test-load retry timer infrastructureBrad King2023-11-212-32/+23
|
* cmCTestMultiProcessHandler: Factor out loop startup and teardownBrad King2023-11-212-2/+15
|
* cmCTestMultiProcessHandler: Consolidate test readiness checksBrad King2023-11-211-11/+13
|
* cmCTestMultiProcessHandler: Exclude dependent tests earlierBrad King2023-11-211-8/+6
| | | | | Tests with unfinished dependencies should not be considered at all when looking for tests that fit within the load and concurrency limits.
* cmCTestTestHandler: Clarify name of member storing RESOURCE_LOCK propertyBrad King2023-11-214-12/+12
| | | | The property represents project-defined resources.
* Merge topic 'ctest-cleanup'Brad King2023-11-205-144/+148
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5d2e93f9e8 cmCTestMultiProcessHandler: Simplify logic on unavailable resources a4b061a035 cmCTestMultiProcessHandler: Clarify resource availability error member names 1487e540aa cmCTestMultiProcessHandler: Reduce repeat test property map lookups b02b628ad9 cmCTestMultiProcessHandler: Simplify loop termination on serial test 8f1e8af0cc cmCTestMultiProcessHandler: Stop searching for tests when limit is reached bd0b4ca867 cmCTestMultiProcessHandler: Invert spare load condition 9b548139fd cmCTestMultiProcessHandler: Clarify search for tests <= concurrency limit ee321dc85f cmCTestMultiProcessHandler: Clarify search for tests <= spare load ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8981
| * cmCTestMultiProcessHandler: Simplify logic on unavailable resourcesBrad King2023-11-171-4/+7
| | | | | | | | Deallocation is not necessary after allocation fails.
| * cmCTestMultiProcessHandler: Clarify resource availability error member namesBrad King2023-11-174-17/+17
| | | | | | | | | | The members are about the availability of sufficient resources, not allocation of them.
| * cmCTestMultiProcessHandler: Reduce repeat test property map lookupsBrad King2023-11-171-7/+7
| |
| * cmCTestMultiProcessHandler: Simplify loop termination on serial testBrad King2023-11-171-5/+2
| |
| * cmCTestMultiProcessHandler: Stop searching for tests when limit is reachedBrad King2023-11-171-4/+8
| | | | | | | | Avoid an extra loop iteration if we have no room for more tests.
| * cmCTestMultiProcessHandler: Invert spare load conditionBrad King2023-11-171-8/+8
| | | | | | | | Switch then/else blocks to reduce indentation.
| * cmCTestMultiProcessHandler: Clarify search for tests <= concurrency limitBrad King2023-11-171-1/+6
| |
| * cmCTestMultiProcessHandler: Clarify search for tests <= spare loadBrad King2023-11-171-8/+9
| | | | | | | | Move code into conditions where it is needed and comment its purpose.
| * cmCTestMultiProcessHandler: Make loops over all pending tests more consistentBrad King2023-11-171-5/+5
| | | | | | | | | | Some loops were using the ordered list unnecessarily while others used the main map of pending test. Update all to use the latter.
| * cmCTestMultiProcessHandler: Clarify representation of pending test orderBrad King2023-11-172-20/+27
| | | | | | | | Also avoid copying the entire list each time we start a batch of tests.
| * cmCTestMultiProcessHandler: Clarify representation of pending testsBrad King2023-11-173-23/+27
| |
| * cmCTestMultiProcessHandler: Avoid extra copy of test mapsBrad King2023-11-173-6/+6
| |
| * cmCTestMultiProcessHandler: Remove unused membersBrad King2023-11-172-12/+0
| | | | | | | | | | | | The `TestRunningMap` and `TestFinishMap` members have not been used since commit 44017a4767 (CTest: handle dependent and non dependent test requirements equally, 2013-10-17, v3.0.0-rc1~451^2~7).
| * cmCTestMultiProcessHandler: Use cm::uv_loop_ptr abstractionBrad King2023-11-173-6/+7
| | | | | | | | This ensures all loop resources are released.
| * cmCTestMultiProcessHandler: Factor out helper to check for completionJohn Parent2023-11-172-1/+7
| |
| * cmCTestMultiProcessHandler: Replace false condition with opposite assertChris Mahoney2023-11-171-3/+1
| |
| * cmCTestRunTest: Consolidate initialization in constructorBrad King2023-11-173-25/+15
| |
* | Merge topic 'ci-fedora-39'Brad King2023-11-201-4/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cdd741ebf9 Merge branch 'backport-ci-fedora-39' into ci-fedora-39 9283b20659 ci: Suppress CPack/RPM tests pending fix for Fedora 39 18145e8745 ci: Update FindMPI test environment for mpich on Fedora 39 a8be80ccf2 ci: Drop now-unnecessary Clang rules for CXXModules tests 99238b23e9 ci: use Fedora 39 images and environments 57eadec617 ci: update Linux image to Fedora 39 653262162c clang-tidy module: Update to build against LLVM/Clang 17 2cf9a65835 clang-tidy: ignore warnings new in version 17 ... Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8983
| * \ Merge branch 'backport-ci-fedora-39' into ci-fedora-39Brad King2023-11-171-4/+4
| |\ \ | | |/ | |/|
| | * codespell: Match valgrind output without repeating a spelling errorBrad King2023-11-171-4/+4
| | |
* | | cmUVSignalHackRAII: Drop outdated and unused libuv SA_RESTART workaroundBrad King2023-11-171-4/+0
|/ / | | | | | | | | | | It is only needed for libuv < 1.19, but since commit c050d6a01e (string(TIMESTAMP): add %f specifier for microseconds, 2022-01-27, v3.23.0-rc1~59^2) we require libuv >= 1.28.
* | ctest_empty_binary_directory: Report more detail in failure messageBrad King2023-11-093-24/+37
| |
* | Merge topic 'cxx23'Brad King2023-11-082-9/+12
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | a0fabc4769 cmGlobalGeneratorFactory: Provide complete cmGlobalGenerator to deleter 85627a93c9 cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publicly 641c02a3ce cmList: Avoid using operator-> on input iterator e4483b8871 Tests: Avoid compiling call to dap::optional<dap::string>(nullptr) Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: scivision <michael@scivision.dev> Merge-request: !8950
| * cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publiclyBrad King2023-11-072-9/+12
| |
* | Source: Reduce vector entry allocations and copiesRose2023-10-236-31/+31
|/ | | | Prefer `emplace_back` over `push_back`.
* Merge topic 'ctest-timeout-flag'Brad King2023-10-021-5/+6
|\ | | | | | | | | | | | | | | | | d267c128a2 ctest: Restore support for --timeout values higher than default test timeout dd779a4bc2 Tests: Clarify RunCMake.CTestTimeout case name Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8851
| * ctest: Restore support for --timeout values higher than default test timeoutBrad King2023-09-291-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | Since refactoring in commit 0a5aeaf302 (cmCTestRunTest: Consolidate test timeout selection logic, 2023-05-04, v3.27.0-rc1~120^2) we accidentally truncate `--timeout` values to ctest's default `TimeOut`. Fix the logic to prefer the flag whenever the `TIMEOUT` property is not set. In combination with the prior refactoring, this also fixes a bug that caused `--timeout` values of 10000000 seconds or more to be ignored. Fixes: #23979
* | Source: Remove redundant FileIsDirectory checksscivision2023-09-191-4/+2
| |
* | Merge topic 'ctest_submit_follow_redirects'Brad King2023-09-081-0/+3
|\ \ | |/ | | | | | | | | | | | | 26ce8dc290 ctest: Restore support for http redirects during Submit step Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8782
| * ctest: Restore support for http redirects during Submit stepZack Galbreath2023-09-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After CDash PR 1519 introduced HTTP status codes greater than 200 for various error cases, CMake commit b7c871f745 (ctest: Update ctest_submit for CDash behavior change, 2023-07-24, v3.27.1~3^2) modified CTest's submit handler to check the status returned by CDash and throw an error when this status is not equal to 200. That change had the unintended side effect of causing CTest submissions to fail when uploading results to a URL that returns a redirect status code (3xx). Fix this by configuring cURL to follow the redirect. The status cURL reports to CTest is now 200 instead of 3xx when CDash is located behind a redirect. Fixes: #25159
| * Merge topic 'cdash_checksum_400' into release-3.27Brad King2023-07-251-9/+12
| |\ | | | | | | | | | | | | | | | | | | | | | b7c871f745 ctest: Update ctest_submit for CDash behavior change Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8648
* | | cmCTestCoverageHandler: Replace cmsysProcess with cmUVProcessChainKyle Edwards2023-08-291-93/+18
| | |
* | | cmCTestLaunchReporter: Replace cmsysProcess with cmUVProcessChainKyle Edwards2023-08-296-226/+256
| | | | | | | | | | | | And convert cmCTestLaunch and cmCTestBuildHandler too.
* | | cmCTest: Replace cmsysProcess with cmUVProcessChainKyle Edwards2023-08-292-10/+7
| | |
* | | cmCTestScriptHandler: Replace cmsysProcess with cmUVProcessChainKyle Edwards2023-08-291-41/+43
| | | | | | | | | | | | And update cmSystemTools::WaitForLine() to use cmUVProcessChain.
* | | cmProcessTools::RunProcess(): Replace cmsysProcess with cmUVProcessChainKyle Edwards2023-08-2910-209/+165
| | | | | | | | | | | | And convert the VCS code to std::vector<std::string>.