mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-30 10:20:56 -06:00
@@ -657,6 +657,12 @@ that may contain the following fields:
|
||||
passing :option:`--output-log <ctest --output-log>` on the command line.
|
||||
This field supports macro expansion.
|
||||
|
||||
``outputJUnitFile``
|
||||
An optional string specifying a path to a JUnit file. Equivalent to
|
||||
passing :option:`--output-junit <ctest --output-junit>` on the command line.
|
||||
This field supports macro expansion. This is allowed in preset files
|
||||
specifying version ``6`` or above.
|
||||
|
||||
``labelSummary``
|
||||
An optional bool. If false, equivalent to passing
|
||||
:option:`--no-label-summary <ctest --no-label-summary>` on the command
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
"vendor": { "$ref": "#/definitions/vendor" },
|
||||
"configurePresets": { "$ref": "#/definitions/configurePresetsV3"},
|
||||
"buildPresets": { "$ref": "#/definitions/buildPresetsV4"},
|
||||
"testPresets": { "$ref": "#/definitions/testPresetsV5"},
|
||||
"testPresets": { "$ref": "#/definitions/testPresetsV6"},
|
||||
"packagePresets": { "$ref": "#/definitions/packagePresetsV6"},
|
||||
"workflowPresets": { "$ref": "#/definitions/workflowPresetsV6" },
|
||||
"include": { "$ref": "#/definitions/include"}
|
||||
@@ -705,6 +705,25 @@
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"testPresetsItemsV6": {
|
||||
"type": "array",
|
||||
"description": "An optional array of test preset objects. Used to specify arguments to ctest. Available in version 6 and higher.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"output": {
|
||||
"type": "object",
|
||||
"description": "An optional object specifying output options.",
|
||||
"properties": {
|
||||
"outputJUnitFile": {
|
||||
"type": "string",
|
||||
"description": "An optional string specifying a path to a JUnit file. Equivalent to passing --output-junit on the command line."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"testPresetsItemsV5": {
|
||||
"type": "array",
|
||||
"description": "An optional array of test preset objects. Used to specify arguments to ctest. Available in version 5 and higher.",
|
||||
@@ -1051,6 +1070,58 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"testPresetsV6": {
|
||||
"type": "array",
|
||||
"description": "An optional array of test preset objects. Used to specify arguments to ctest. Available in version 6 and higher.",
|
||||
"allOf": [
|
||||
{ "$ref": "#/definitions/testPresetsItemsV2" },
|
||||
{ "$ref": "#/definitions/testPresetsItemsV3" },
|
||||
{ "$ref": "#/definitions/testPresetsItemsV5" },
|
||||
{ "$ref": "#/definitions/testPresetsItemsV6" }
|
||||
],
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {},
|
||||
"hidden": {},
|
||||
"inherits": {},
|
||||
"configurePreset": {},
|
||||
"vendor": {},
|
||||
"displayName": {},
|
||||
"description": {},
|
||||
"inheritConfigureEnvironment": {},
|
||||
"environment": {},
|
||||
"configuration": {},
|
||||
"overwriteConfigurationFile": {},
|
||||
"output": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"shortProgress": {},
|
||||
"verbosity": {},
|
||||
"debug": {},
|
||||
"outputOnFailure": {},
|
||||
"quiet": {},
|
||||
"outputLogFile": {},
|
||||
"outputJUnitFile": {},
|
||||
"labelSummary": {},
|
||||
"subprojectSummary": {},
|
||||
"maxPassedTestOutputSize": {},
|
||||
"maxFailedTestOutputSize": {},
|
||||
"maxTestNameWidth": {},
|
||||
"testOutputTruncation": {}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"filter": {},
|
||||
"execution": {},
|
||||
"condition": {}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"testPresetsV5": {
|
||||
"type": "array",
|
||||
"description": "An optional array of test preset objects. Used to specify arguments to ctest. Available in version 5 and higher.",
|
||||
|
||||
@@ -21,6 +21,9 @@ Presets
|
||||
* The :manual:`cmake-presets(7)` format now supports a
|
||||
``workflowPresets`` field to specify presets for :option:`cmake --workflow`.
|
||||
|
||||
* The :manual:`cmake-presets(7)` format now supports a
|
||||
``outputJUnitFile`` field to specify JUnit output in test presets.
|
||||
|
||||
Languages
|
||||
---------
|
||||
|
||||
|
||||
@@ -2116,11 +2116,7 @@ bool cmCTest::HandleCommandLineArguments(size_t& i,
|
||||
return false;
|
||||
}
|
||||
i++;
|
||||
this->Impl->TestHandler.SetJUnitXMLFileName(std::string(args[i]));
|
||||
// Turn test output compression off.
|
||||
// This makes it easier to include test output in the resulting
|
||||
// JUnit XML report.
|
||||
this->Impl->CompressTestOutput = false;
|
||||
this->SetOutputJUnitFileName(std::string(args[i]));
|
||||
}
|
||||
|
||||
cm::string_view noTestsPrefix = "--no-tests=";
|
||||
@@ -2458,6 +2454,9 @@ bool cmCTest::SetArgsFromPreset(const std::string& presetName,
|
||||
if (!expandedPreset->Output->OutputLogFile.empty()) {
|
||||
this->SetOutputLogFileName(expandedPreset->Output->OutputLogFile);
|
||||
}
|
||||
if (!expandedPreset->Output->OutputJUnitFile.empty()) {
|
||||
this->SetOutputJUnitFileName(expandedPreset->Output->OutputJUnitFile);
|
||||
}
|
||||
|
||||
this->Impl->LabelSummary =
|
||||
expandedPreset->Output->LabelSummary.value_or(true);
|
||||
@@ -3541,6 +3540,15 @@ void cmCTest::SetOutputLogFileName(const std::string& name)
|
||||
}
|
||||
}
|
||||
|
||||
void cmCTest::SetOutputJUnitFileName(const std::string& name)
|
||||
{
|
||||
this->Impl->TestHandler.SetJUnitXMLFileName(name);
|
||||
// Turn test output compression off.
|
||||
// This makes it easier to include test output in the resulting
|
||||
// JUnit XML report.
|
||||
this->Impl->CompressTestOutput = false;
|
||||
}
|
||||
|
||||
static const char* cmCTestStringLogType[] = { "DEBUG",
|
||||
"OUTPUT",
|
||||
"HANDLER_OUTPUT",
|
||||
|
||||
@@ -359,6 +359,9 @@ public:
|
||||
/** Set the output log file name */
|
||||
void SetOutputLogFileName(const std::string& name);
|
||||
|
||||
/** Set the output JUnit file name */
|
||||
void SetOutputJUnitFileName(const std::string& name);
|
||||
|
||||
/** Set the visual studio or Xcode config type */
|
||||
void SetConfigType(const std::string& ct);
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/check.cmake")
|
||||
if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/default/output.xml")
|
||||
string(APPEND RunCMake_TEST_FAILED "Expected ${RunCMake_TEST_BINARY_DIR}/default/output.xml to exist but it does not\n")
|
||||
endif()
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": 5,
|
||||
"version": 6,
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "default",
|
||||
@@ -178,6 +178,13 @@
|
||||
"output": {
|
||||
"outputLogFile": "${sourceDir}/build/default/output.log"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "outputJUnit",
|
||||
"inherits": "minimal",
|
||||
"output": {
|
||||
"outputJUnitFile": "${sourceDir}/build/default/output.xml"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,2 @@
|
||||
^CMake Error: Could not read presets from [^
|
||||
]*/Tests/RunCMake/CMakePresetsTest/OutputJUnitUnsupported: File version must be 6 or higher for CTest JUnit output support$
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"version": 5,
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "default"
|
||||
}
|
||||
],
|
||||
"testPresets": [
|
||||
{
|
||||
"name": "unsupported",
|
||||
"configurePreset": "default",
|
||||
"output": {
|
||||
"outputJUnitFile": "junit.xml"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -78,7 +78,7 @@ set(CMakePresetsTest_ASSETS "Good-indexFile.txt")
|
||||
set(GoodTestPresets
|
||||
"minimal;defaults;noEnvironment;withEnvironment"
|
||||
"config-debug;config-release"
|
||||
"exclude;index;indexFile;showOnly;outputLog")
|
||||
"exclude;index;indexFile;showOnly;outputLog;outputJUnit")
|
||||
run_cmake_test_presets(Good
|
||||
"default"
|
||||
""
|
||||
@@ -106,6 +106,7 @@ set(CMakePresets_SCHEMA_EXPECTED_RESULT 1)
|
||||
run_cmake_test_presets(PresetsUnsupported "" "" "x")
|
||||
run_cmake_test_presets(ConditionFuture "" "" "x")
|
||||
run_cmake_test_presets(TestOutputTruncationUnsupported "" "" "x")
|
||||
run_cmake_test_presets(OutputJUnitUnsupported "" "" "x")
|
||||
set(CMakePresets_SCHEMA_EXPECTED_RESULT 0)
|
||||
run_cmake_test_presets(ConfigurePresetUnreachable "" "" "x")
|
||||
set(CMakePresetsTest_NO_CONFIGURE 0)
|
||||
|
||||
Reference in New Issue
Block a user