summaryrefslogtreecommitdiffstats
path: root/Source/CTest
Commit message (Collapse)AuthorAgeFilesLines
* ctest: Restore enforcement of RESOURCE_LOCK test propertyBrad King2024-04-012-4/+12
| | | | | | | | | Refactoring in commit 5ff0b4ed57 (cmCTestMultiProcessHandler: Consolidate test readiness checks, 2023-10-20, v3.29.0-rc1~378^2~4) accidentally broke `RESOURCE_LOCK`. Fix it and replace the previous test with one that would have caught this. Fixes: #25843
* Merge topic 'ctest-j-default' into release-3.29Brad King2024-03-115-50/+109
|\ | | | | | | | | | | | | | | | | | | | | | | | | 5de1e21659 ctest: Allow passing -j without value to choose a contextual default bbcbcff7d9 cmCTestMultiProcessHandler: Modernize member initialization 7457b474a1 Tests: Remove unnecessary parallel suppression from CTestCoverageCollectGCOV ae69801d96 Tests: Convert CTestTestSkipReturnCode to RunCMake.ctest_test case 30dda49416 Tests: Convert CTestTestSerialOrder to RunCMake.ctest_test case Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: scivision <michael@scivision.dev> Merge-request: !9315
| * ctest: Allow passing -j without value to choose a contextual defaultBrad King2024-03-105-17/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | Under job server integration, added by commit 80fe56c481 (ctest: Add support for running under a make job server on POSIX systems, 2023-11-15, v3.29.0-rc1~324^2), use a very high default so that parallelism is effectively limited only by available job server tokens. Otherwise, choose a default limit based on the number of processors. Also allow passing `0` to specify unbounded parallelism. Fixes: #25739
| * cmCTestMultiProcessHandler: Modernize member initializationBrad King2024-03-103-34/+23
| |
* | ctest: Remove unnecessary and ambiguous tests-from-file comment syntaxBrad King2024-03-081-5/+2
| | | | | | | | | | | | | | | | Test names can contain `#`. Since we ignore lines that do not match any test names anyway, "commenting" can still work without explicit syntax. Also drop whitespace trimming for similar reasons. Fixes: #25741
* | ctest: Honor tests-from-file options with empty inputBrad King2024-03-082-22/+24
| | | | | | | | If the `--tests-from-file` input file is empty, no tests should run.
* | ctest: Exit with failure when tests-from-file input is missingBrad King2024-03-062-10/+14
|/ | | | | | | | | | | | | | | If the options added by * commit 022f20f663 (ctest: add command line option to run the tests listed in a given file, 2023-11-29, v3.29.0-rc1~66^2~2) * commit dbacc1d5a8 (ctest: add command line option to exclude tests listed in a given file, 2023-11-30, v3.29.0-rc1~66^2~1) * commit 701029726f (ctest_test: add options INCLUDE_FROM_FILE and EXCLUDE_FROM_FILE, 2023-12-03, v3.29.0-rc1~66^2) are given a missing file, fail instead of ignoring it. Fixes: #25740
* Merge topic 'ctest-tests-from-file'Brad King2024-01-264-0/+80
|\ | | | | | | | | | | | | | | | | | | 701029726f ctest_test: add options INCLUDE_FROM_FILE and EXCLUDE_FROM_FILE dbacc1d5a8 ctest: add command line option to exclude tests listed in a given file 022f20f663 ctest: add command line option to run the tests listed in a given file Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !9128
| * ctest_test: add options INCLUDE_FROM_FILE and EXCLUDE_FROM_FILEAlex Neundorf2024-01-252-0/+12
| | | | | | | | | | | | | | These options can be used to specify files which can be used to restrict the set of tests that will be executed. Fixes: #25455
| * ctest: add command line option to exclude tests listed in a given fileAlex Neundorf2024-01-252-4/+28
| | | | | | | | | | | | | | Add `--exclude-from-file <filename>` to exclude the tests listed in the given file. Issue: #25455
| * ctest: add command line option to run the tests listed in a given fileAlex Neundorf2024-01-252-0/+44
| | | | | | | | | | | | | | | | Add `--tests-from-file <filename>` to run only the tests listed in the given file. The test names must match exactly, no regexps or something. The listed tests can still be filtered with a regexp using -R. Issue: #25455
* | Merge topic 'cmuvprocesschain'Brad King2024-01-252-11/+4
|\ \ | |/ |/| | | | | | | | | | | | | | | adb3e13d32 cmUVProcessChain: Tolerate fileno() of invalid FILE stream b6e4e4babc cmUVProcessChain: Simplify SetExternalStream usage 116bb2b70f cmUVProcessChain: Simplify builder initialization d32c30906a Tests: Add missing include in testUVProcessChainHelper on Windows Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9181
| * cmUVProcessChain: Simplify SetExternalStream usageBrad King2024-01-242-11/+4
| | | | | | | | | | It is commonly called with the `fileno()` of a `FILE*` stream, so accept the latter directly.
* | Source: Avoid out-of-range inputs to std::isspace()Brad King2024-01-171-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | `isspace` takes `int` but documents that the value must be representable by `unsigned char`, or be EOF. Use a wrapper to cast to `unsigned char` to avoid sign extension while converting to `int`. This generalizes the fix from commit 5e8c176e2a (cmExecuteProcessCommand: Cast c to unsigned char before cast to int, 2024-01-05) to other `isspace` call sites. This was detected by assertions in the MSVC standard library while processing UTF-8 text. Issue: #25561
* | ctest: allow HTTP headers via command lineMatthew Woehlke2024-01-082-1/+26
| | | | | | | | Add ability to specify HTTP headers via `ctest -T Submit`.
* | 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.