|
@@ -100,7 +100,7 @@ Enabling Instrumentation for CDash Submissions
|
|
You can enable instrumentation when using CTest in :ref:`Dashboard Client`
|
|
You can enable instrumentation when using CTest in :ref:`Dashboard Client`
|
|
mode by setting the :envvar:`CTEST_USE_INSTRUMENTATION` environment variable
|
|
mode by setting the :envvar:`CTEST_USE_INSTRUMENTATION` environment variable
|
|
to the current UUID for the ``CMAKE_EXPERIMENTAL_INSTRUMENTATION`` feature.
|
|
to the current UUID for the ``CMAKE_EXPERIMENTAL_INSTRUMENTATION`` feature.
|
|
-Doing so automatically enables the ``dynamicSystemInformation`` query.
|
|
|
|
|
|
+Doing so automatically enables the ``dynamicSystemInformation`` option.
|
|
|
|
|
|
The following table shows how each type of instrumented command gets mapped
|
|
The following table shows how each type of instrumented command gets mapped
|
|
to a corresponding type of CTest XML file.
|
|
to a corresponding type of CTest XML file.
|
|
@@ -125,6 +125,9 @@ By default the command line reported to CDash is truncated at the first space.
|
|
You can instead choose to report the full command line (including arguments)
|
|
You can instead choose to report the full command line (including arguments)
|
|
by setting :envvar:`CTEST_USE_VERBOSE_INSTRUMENTATION` to 1.
|
|
by setting :envvar:`CTEST_USE_VERBOSE_INSTRUMENTATION` to 1.
|
|
|
|
|
|
|
|
+Alternatively, you can use the `v1 Query Files`_ to enable instrumentation for
|
|
|
|
+CDash using the ``cdashSubmit`` and ``cdashVerbose`` options.
|
|
|
|
+
|
|
.. _`cmake-instrumentation API v1`:
|
|
.. _`cmake-instrumentation API v1`:
|
|
|
|
|
|
API v1
|
|
API v1
|
|
@@ -146,8 +149,9 @@ subdirectories:
|
|
|
|
|
|
``query/generated/``
|
|
``query/generated/``
|
|
Holds query files generated by a CMake project with the
|
|
Holds query files generated by a CMake project with the
|
|
- :command:`cmake_instrumentation` command. These files are owned by CMake and
|
|
|
|
- are deleted and regenerated automatically during the CMake configure step.
|
|
|
|
|
|
+ :command:`cmake_instrumentation` command or the
|
|
|
|
+ :envvar:`CTEST_USE_INSTRUMENTATION` variable. These files are owned by CMake
|
|
|
|
+ and are deleted and regenerated automatically during the CMake configure step.
|
|
|
|
|
|
``data/``
|
|
``data/``
|
|
Holds instrumentation data collected on the project. CMake owns all data
|
|
Holds instrumentation data collected on the project. CMake owns all data
|
|
@@ -193,8 +197,9 @@ key is required, but all other fields are optional.
|
|
* ``postTest``
|
|
* ``postTest``
|
|
|
|
|
|
``options``
|
|
``options``
|
|
- A list of strings specifying additional optional data to collect during
|
|
|
|
- instrumentation. Elements in this list should be one of the following:
|
|
|
|
|
|
+ A list of strings used to enable certain optional behavior, including the
|
|
|
|
+ collection of certain additional data. Elements in this list should be one of
|
|
|
|
+ the following:
|
|
|
|
|
|
``staticSystemInformation``
|
|
``staticSystemInformation``
|
|
Enables collection of the static information about the host machine CMake
|
|
Enables collection of the static information about the host machine CMake
|
|
@@ -207,13 +212,26 @@ key is required, but all other fields are optional.
|
|
generated by CMake, and includes information from immediately before and
|
|
generated by CMake, and includes information from immediately before and
|
|
after the command is executed.
|
|
after the command is executed.
|
|
|
|
|
|
|
|
+ ``cdashSubmit``
|
|
|
|
+ Enables including instrumentation data in CDash. This does not
|
|
|
|
+ automatically enable ``dynamicSystemInformation``, but is otherwise
|
|
|
|
+ equivalent to having the :envvar:`CTEST_USE_INSTRUMENTATION` environment
|
|
|
|
+ variable enabled.
|
|
|
|
+
|
|
|
|
+ ``cdashVerbose``
|
|
|
|
+ Enables including the full untruncated commands in data submitted to
|
|
|
|
+ CDash. Equivalent to having the
|
|
|
|
+ :envvar:`CTEST_USE_VERBOSE_INSTRUMENTATION` environment variable enabled.
|
|
|
|
+
|
|
The ``callbacks`` listed will be invoked during the specified hooks
|
|
The ``callbacks`` listed will be invoked during the specified hooks
|
|
*at a minimum*. When there are multiple query files, the ``callbacks``,
|
|
*at a minimum*. When there are multiple query files, the ``callbacks``,
|
|
``hooks`` and ``options`` between them will be merged. Therefore, if any query
|
|
``hooks`` and ``options`` between them will be merged. Therefore, if any query
|
|
file includes any ``hooks``, every ``callback`` across all query files will be
|
|
file includes any ``hooks``, every ``callback`` across all query files will be
|
|
executed at every ``hook`` across all query files. Additionally, if any query
|
|
executed at every ``hook`` across all query files. Additionally, if any query
|
|
-file includes any optional ``options``, the optional query data will be present
|
|
|
|
-in all data files.
|
|
|
|
|
|
+file requests optional data using the ``options`` field, any related data will
|
|
|
|
+be present in all snippet files. User written ``callbacks`` should be able to
|
|
|
|
+handle the presence of this optional data, since it may be requested by an
|
|
|
|
+unrelated query.
|
|
|
|
|
|
Example:
|
|
Example:
|
|
|
|
|
|
@@ -231,7 +249,8 @@ Example:
|
|
],
|
|
],
|
|
"options": [
|
|
"options": [
|
|
"staticSystemInformation",
|
|
"staticSystemInformation",
|
|
- "dynamicSystemInformation"
|
|
|
|
|
|
+ "dynamicSystemInformation",
|
|
|
|
+ "cdashSubmit"
|
|
]
|
|
]
|
|
}
|
|
}
|
|
|
|
|
|
@@ -240,12 +259,14 @@ invocation, an index file ``index-<timestamp>.json`` will be generated in
|
|
``<build>/.cmake/instrumentation/v1/data`` containing a list of data snippet
|
|
``<build>/.cmake/instrumentation/v1/data`` containing a list of data snippet
|
|
files created since the previous indexing. The commands
|
|
files created since the previous indexing. The commands
|
|
``/usr/bin/python callback.py index-<timestamp>.json`` and
|
|
``/usr/bin/python callback.py index-<timestamp>.json`` and
|
|
-``/usr/bin/cmake -P callback.cmake arg index-<timestamp>.json`` will be executed in
|
|
|
|
-that order. The index file will contain the ``staticSystemInformation`` data and
|
|
|
|
-each snippet file listed in the index will contain the
|
|
|
|
|
|
+``/usr/bin/cmake -P callback.cmake arg index-<timestamp>.json`` will be executed
|
|
|
|
+in that order. The index file will contain the ``staticSystemInformation`` data
|
|
|
|
+and each snippet file listed in the index will contain the
|
|
``dynamicSystemInformation`` data. Once both callbacks have completed, the index
|
|
``dynamicSystemInformation`` data. Once both callbacks have completed, the index
|
|
file and all snippet files listed by it will be deleted from the project build
|
|
file and all snippet files listed by it will be deleted from the project build
|
|
-tree.
|
|
|
|
|
|
+tree. The instrumentation data will be present in the XML files submitted to
|
|
|
|
+CDash, but with truncated command strings because ``cdashVerbose`` was not
|
|
|
|
+enabled.
|
|
|
|
|
|
.. _`cmake-instrumentation Data v1`:
|
|
.. _`cmake-instrumentation Data v1`:
|
|
|
|
|