Commit Graph

1370 Commits

Author SHA1 Message Date
Brad King 75844dd609 Merge topic 'cleanup-find-cstr'
69ca85cc7f Remove unnecessary c_str() in RegularExpression::find calls

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2271
2018-08-09 08:00:03 -04:00
Vitaly Stakhovsky 69ca85cc7f Remove unnecessary c_str() in RegularExpression::find calls 2018-08-07 15:28:24 -04:00
Sebastian Holtermann b6802cd506 cmGeneratedFileStream: clang-tidy applied to remove redundant `c_str` calls
After changing the ``cmGeneratedFileStream`` methods to accept
``std::string const&`` instead of ``const char*`` we don't
need to call ``std::string::c_str`` anymore when passing
a ``std::string`` to a ``cmGeneratedFileStream`` method.

This patch removes all redundant ``std::string::c_str``
calls when passing a string to a ``cmGeneratedFileStream`` method.

It was generated by building CMake with clang-tidy enabled using
the following options:

-DCMAKE_CXX_CLANG_TIDY=/usr/bin/clang-tidy-4.0;-checks=-*,readability-redundant-string-cstr;-fix;-fix-errors
2018-08-07 17:02:39 +02:00
Brad King 08813b17a1 Merge topic 'ctest_submit-https'
71f27c04b0 ctest_submit: show headers as debug info
4464ef21da ctest_submit: Check CA file during CDASH_UPLOAD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2171
2018-06-29 08:56:25 -04:00
Zack Galbreath 71f27c04b0 ctest_submit: show headers as debug info
Hide any headers specified by `ctest_submit(HTTPHEADER ...)` unless ctest
is run with --debug.  This option is used to present bearer tokens to CDash.
We do not want to inadvertently expose this secret data in the console
output log.
2018-06-27 15:08:14 -04:00
Zack Galbreath 4464ef21da ctest_submit: Check CA file during CDASH_UPLOAD
This fixes a bug where ctest(SUBMIT CDASH_UPLOAD ...) would fail when
attemping to submit to a site bearing a genuine SSL certificate.
This code path was missing a call to cmCurlSetCAInfo() which loads
the certificate authority file.
2018-06-27 15:08:14 -04:00
Brad King b41b30f16e Update use of KWSys SystemTools::SplitString for new signature 2018-06-22 13:38:18 -04:00
luz.paz be28106880 Fix misc. typos
Found via `codespell` and `grep`
2018-06-04 10:32:49 -04:00
Kitware Robot d7204e649e Revise C++ coding style using clang-format-6.0
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`.  Use `clang-format` version 6.0.

* If you reached this commit for a line in `git blame`, re-run the blame
  operation starting at the parent of this commit to see older history
  for the content.

* See the parent commit for instructions to rebase a change across this
  style transition commit.
2018-06-01 09:53:42 -04:00
Brad King f248f8ad78 Merge topic 'parallel_build_option'
1ab3881ec9 cmake: Add options for parallel builds to --build mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Henry Schreiner <henryschreineriii@gmail.com>
Merge-request: !1962
2018-05-29 10:05:09 -04:00
Florian Maushart 1ab3881ec9 cmake: Add options for parallel builds to --build mode
While we already support `cmake --build . -- -j`, the options after `--`
are specific to the native build tool.  Add new options `--parallel
[<N>]` and `-j [<N>]` to abstract this and map to the proper option
for the native build tool.
2018-05-25 09:42:20 -04:00
Brad King 18c71919ac Merge topic 'xml-element-enhance'
ff13b0cdc2 cmCTestLaunch: use cmXMLElement for XML generation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2057
2018-05-14 09:34:19 -04:00
Vitaly Stakhovsky ff13b0cdc2 cmCTestLaunch: use cmXMLElement for XML generation
class `cmXMLElement` enhanced with more members; its use demonstrated
2018-05-11 11:33:13 -04:00
Kyle Edwards 563781099f ctest_start: read model from TAG file
This change reworks ctest_start() so that simply calling
ctest_start(APPEND) will read all the information from the TAG file.
On top of that, it relaxes the argument parsing for ctest_start() to
allow greater flexibility in the argument ordering, and the documentation
for ctest_start() has been cleaned up.
2018-05-09 08:22:55 -04:00
jrp2014 418541035f cmCTestCurl: Fix UploadFile declared parameter names
Match the order used in the definition.
2018-04-05 13:42:49 -04:00
Brad King cdc6dd888e Merge topic 'gcov-warning-message'
ae1cbff07f CTest: The "Could not find gcov." message should not be a warning

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1894
2018-03-29 10:16:27 -04:00
Betsy McPhail ae1cbff07f CTest: The "Could not find gcov." message should not be a warning
It now matches the log level of other coverage messages.
2018-03-28 08:32:46 -04:00
Brad King 9dd7776cd9 Merge topic 'ctest_update-memory-problems'
27f033550a ctest_update: Fix crash when handling svn externals
75e8af3354 cmSystemTools: Fix ParseArguments out-of-bounds read

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1893
2018-03-28 07:23:47 -04:00
Brad King 27f033550a ctest_update: Fix crash when handling svn externals
Refactoring in commit v3.9.0-rc1~156^2 (c++: prefer vectors over lists,
2017-05-04) switched `cmCTestSVN::Repositories` from `std::list` to
`std::vector`.  This can cause re-allocation when svn externals are
processed and break the `RootInfo` pointer that is supposed to point at
the first repository element.  Switch back to `std::list` so that the
address remains stable.

Fixes: #17854
2018-03-27 08:46:20 -04:00
Brad King e11410bb0c Merge topic 'cmWorkingDirectory_success_checking'
5901699672 cmDepends: Remove attempt to change directory that always fails
e60e4dfc88 cmWorkingDirectory: Check success of current dir changes
e654622aee Tests: Add --build-and-test test case
a865f0beb2 Tests: Confirm test working dir set successfully

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1817
2018-03-09 07:43:54 -05:00
Brad King 50b2d0c944 Merge topic 'misc-typos'
32f6b7a43b Fix misc typos in documentation and comments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1826
2018-03-08 09:58:19 -05:00
Craig Scott e60e4dfc88 cmWorkingDirectory: Check success of current dir changes 2018-03-08 20:07:14 +11:00
luz.paz 32f6b7a43b Fix misc typos in documentation and comments 2018-03-07 10:54:46 -05:00
Brad King 6be53c6695 CTest: Add options to control test process affinity to CPUs
In commit v2.8.0~170 (ENH: Added ctest test options PROCESSORS and
RUN_SERIAL, 2009-09-07) CTest learned to track the number of processors
allocated to running tests in order to balance it against the desired
level of parallelism.  Extend this idea by introducing a new
`PROCESSOR_AFFINITY` test property to ask that CTest run a test
with the CPU affinity mask set.  This will allow a set of tests
that are running concurrently to use disjoint CPU resources.
2018-03-05 09:21:32 -05:00
Pavel Solodovnikov 653b894683 Reduce raw string pointers usage.
* Change some functions to take `std::string` instead of
  `const char*` in the following classes: `cmMakeFile`, `cmake`,
  `cmCoreTryCompile`, `cmSystemTools`,  `cmState`, `cmLocalGenerator`
  and a few others.
* Greatly reduce using of `const char*` overloads for
  `cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`.
* Remove many redundant `c_str()` conversions throughout the code.
2018-01-31 18:23:03 +03:00
Brad King 92cd3d0677 Merge topic 'reduce-temporaries'
c85bb007 Reduce allocation of temporary values on heap.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1698
2018-01-29 08:05:27 -05:00
Brad King 18153217e2 Merge topic 'ctest_start_function_scope'
13347740 Help: add release notes, documentation for CTEST_RUN_CURRENT_SCRIPT behavior
74092d92 cmCTestScriptHandler: Add new field ShouldRunCurrentScript

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1703
2018-01-29 08:04:59 -05:00
Kyle Edwards 74092d92bf cmCTestScriptHandler: Add new field ShouldRunCurrentScript
This is to avoid scope issues with CTEST_RUN_CURRENT_SCRIPT. If
ctest_start() is called within a function scope, the value of
CTEST_RUN_CURRENT_SCRIPT that it sets doesn't make it to the global
scope. With this change, ctest_start() no longer sets
CTEST_RUN_CURRENT_SCRIPT, and instead sets a field directly in
cmCTestScriptHandler. The old behavior of CTEST_RUN_CURRENT_SCRIPT
has also been kept for projects and tests that rely on setting it.
2018-01-26 09:27:22 -05:00
Brad King 0e793e7bed Merge topic 'dedup-uv-signal-hack'
3ec5f7c1 De-duplicate cmUVSignalHackRAII
1ad58d30 cmUVSignalHackRAII: Use nullptr instead of NULL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1699
2018-01-26 08:28:08 -05:00
Pavel Solodovnikov c85bb007df Reduce allocation of temporary values on heap.
- Use `std::move` while inserting temporary results into vectors.
- Change `push_back` to `emplace_back` where appropriate.
2018-01-26 13:24:45 +03:00
Brad King 3ec5f7c1a2 De-duplicate cmUVSignalHackRAII
This was added separately in `cmCTestMultiProcessHandler` and
`cmQtAutoGenerator`.  Factor out the duplicate code into a common header
for re-use.
2018-01-25 09:22:47 -05:00
Brad King 1ad58d3032 cmUVSignalHackRAII: Use nullptr instead of NULL 2018-01-25 09:21:39 -05:00
Wouter Klouwen e6a80ccfc4 Make use of std::chrono throughout every component
This commit continues the changes made in CTest to support std::chrono
by
applying it throughout every component where a duration was used.

No functional change intended.
2018-01-23 18:56:42 +00:00
Wouter Klouwen ff62b00522 CTest: add safe conversion from cmDuration to integer types
A problem area by recent refactoring of time to std::chrono has been the
unsafe conversion from duration<double> to std::chrono::seconds, which
is of an unspecified integer type.

This commit adds a template function that for a given type provides a
safe conversion, effectively clamping a duration<double> into what fits
safely in that type. A specialisation for int and unsigned int are
provided.

It changes the protential problem areas to use this safe function.
2018-01-23 10:05:12 -05:00
Wouter Klouwen 695951bc46 CTest: introduce cmDuration
This commit introduces cmDuration as a typedef for
std::chrono::duration<double, std::ratio<1>>. It is less verbose and
provides for a point to put future common functionality for durations.

No functional change intended.
2018-01-23 10:04:38 -05:00
Brad King a6e9b9c9e4 CTest: Fix process output read error cases
The libuv documentation states that the stream read callback may
be called with `nread == 0` for EAGAIN.  Handle this gracefully.
It also states that the callee is responsible for closing the
stream on error.  Always close the stream for `nread < 0`.
2018-01-17 11:20:24 -05:00
Brad King c10119df62 CTest: Fix decoding of MBCS character split by buffering
Use a single `cmProcessOutput` instance persistently to decode
all output of a test process so that partial character bytes
can be buffered.
2018-01-17 10:41:51 -05:00
Bryon Bean b5e21d7d2e CTest: Re-implement test process handling using libuv
Co-Author: Brad King <brad.king@kitware.com>
2018-01-10 10:19:14 -05:00
Bryon Bean fcebff75f9 cmProcess: Use explicit enum for process exit exception
Translate the values from KWSys Process.
2018-01-10 10:19:14 -05:00
Bryon Bean 3dd2edf4ab cmProcess: Use explicit enum for process state
Translate the values from KWSys Process.
2018-01-10 10:19:14 -05:00
Bryon Bean 5238e6db70 cmProcess: Remove unused ReportStatus method 2018-01-10 10:19:14 -05:00
Bryon Bean c13b68e61f cmCTestRunTest: Modernize constructor and destructor decls 2018-01-10 10:19:13 -05:00
Bryon Bean 4d6b09037d cmCTestRunTest: Drop unused members 2018-01-10 10:19:13 -05:00
Bryon Bean 05da65bc22 cmCTestMultiProcessHandler: Factor out duplicate test finish logic 2018-01-10 10:19:13 -05:00
Brad King dd94534571 cmCTestMultiProcessHandler: Add helper to make libuv use SA_RESTART
Prior to 1.19, libuv does not use SA_RESTART in its signal handler.
Add a helper to cause libuv to install its handler and then revise
the handler's flags to add SA_RESTART.
2018-01-10 10:18:12 -05:00
Brad King 7e0eb77f2f cmCTestMultiProcessHandler: Fix StartNextTests loop on not-started test
If `StartTestProcess` does not start a test, propagate this information
back up to the `StartNextTests` loop so that it can move on to another
candidate without allocating processors to a test that didn't run.
Otherwise we have to wait for the next time `RunTests` loops around and
calls `StartNextTests` again.
2018-01-08 12:55:01 -05:00
Brad King 61ab5a8ef4 cmCTestMultiProcessHandler: Check stop time more directly
Avoid creating a cmCTestRunTest instance if the stop time has been
reached.  If the stop time occurs in the small time between creating an
instance and computing the child process timeout, we will simply compute
a zero timeout.  This is already done for the case that we StartAgain
after the stop time.
2018-01-08 12:55:01 -05:00
Brad King 4c199a4c28 cmCTestRunTest: Subsume ResolveTimeout into only call site 2018-01-08 12:55:01 -05:00
Brad King 2567e5df69 cmCTest: Refactor stop time calculations
Calculate the stop time up front instead of re-parsing its string for
every test.
2018-01-08 12:55:00 -05:00
Brad King 1138feb38f cmCTest: Remove unused member LastStopTimeout
This member was added by commit v2.8.2~285 (Better detection of
stop_time being passed, 2010-03-19), but its logic has no effect.
The member is only used for comparison against a value to which
it was just assigned.
2018-01-08 12:55:00 -05:00