diff options
-rw-r--r-- | Source/CTest/cmCTestTestHandler.cxx | 5 | ||||
-rw-r--r-- | Source/cmCTest.cxx | 12 | ||||
-rw-r--r-- | Source/cmCTest.h | 8 | ||||
-rw-r--r-- | Source/ctest.cxx | 5 |
4 files changed, 26 insertions, 4 deletions
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index 83d882b..f8084a9 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -644,8 +644,9 @@ void cmCTestTestHandler::ProcessOneTest(cmCTestTestProperties *it, cmCTestLog(this->CTest, HANDLER_OUTPUT, "Testing"); } cmCTestLog(this->CTest, HANDLER_OUTPUT, " "); - std::string outname = testname; - outname.resize(30, ' '); + const int maxTestNameWidth = this->CTest->GetMaxTestNameWidth(); + std::string outname = testname + " "; + outname.resize(maxTestNameWidth, '.'); *this->LogFile << cnt << "/" << tmsize << " Testing: " << testname << std::endl; diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 012571f..c3033de 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -249,6 +249,7 @@ cmCTest::cmCTest() this->ShowOnly = false; this->RunConfigurationScript = false; this->TestModel = cmCTest::EXPERIMENTAL; + this->MaxTestNameWidth = 30; this->InteractiveDebugMode = true; this->TimeOut = 0; this->CompressXMLFiles = false; @@ -1721,6 +1722,11 @@ void cmCTest::HandleCommandLineArguments(size_t &i, { this->ForceNewCTestProcess = true; } + if(this->CheckArgument(arg, "-W", "--max-width") && i < args.size() - 1) + { + i++; + this->MaxTestNameWidth = atoi(args[i].c_str()); + } if(this->CheckArgument(arg, "--interactive-debug-mode") && i < args.size() - 1 ) { @@ -2310,6 +2316,12 @@ bool cmCTest::GetShowOnly() } //---------------------------------------------------------------------- +int cmCTest::GetMaxTestNameWidth() const +{ + return this->MaxTestNameWidth; +} + +//---------------------------------------------------------------------- void cmCTest::SetProduceXML(bool v) { this->ProduceXML = v; diff --git a/Source/cmCTest.h b/Source/cmCTest.h index 01d3b42..a337460 100644 --- a/Source/cmCTest.h +++ b/Source/cmCTest.h @@ -168,7 +168,11 @@ public: ///! Should we only show what we would do? bool GetShowOnly(); - /** + + ///! The max output width + int GetMaxTestNameWidth() const; + + /** * Run a single executable command and put the stdout and stderr * in output. * @@ -373,6 +377,8 @@ private: double TimeOut; + int MaxTestNameWidth; + std::string ParallelCacheFile; int ParallelLevel; int ParallelSubprocessId; diff --git a/Source/ctest.cxx b/Source/ctest.cxx index ddd22ad..9401574 100644 --- a/Source/ctest.cxx +++ b/Source/ctest.cxx @@ -128,8 +128,11 @@ static const char * cmDocumentationOptions[][3] = {"-U, --union", "Take the Union of -I and -R", "When both -R and -I are specified by default the intersection of " "tests are run. By specifying -U the union of tests is run instead."}, + {"--max-width <width>", "Set the max width for a test name to output", + "Set the maximum width for each test name to show in the output. This " + "allows the user to widen the output to avoid cliping the test name which " + "can be very annoying."}, {"--interactive-debug-mode [0|1]", "Set the interactive mode to 0 or 1.", - "This option causes ctest to run tests in either an interactive mode or " "a non-interactive mode. On Windows this means that in non-interactive " "mode, all system debug pop up windows are blocked. In dashboard mode " |