diff options
author | Brad King <brad.king@kitware.com> | 2003-08-06 19:03:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2003-08-06 19:03:56 (GMT) |
commit | 1471a1a6f1d0386ac5997792b8795396a7ad8720 (patch) | |
tree | 06610deb7d823151ba03e6fc440b7d5499be8524 /Source | |
parent | b78888fe3889c2477b0d0ce93d6ab14bcdd25000 (diff) | |
download | CMake-1471a1a6f1d0386ac5997792b8795396a7ad8720.zip CMake-1471a1a6f1d0386ac5997792b8795396a7ad8720.tar.gz CMake-1471a1a6f1d0386ac5997792b8795396a7ad8720.tar.bz2 |
ENH: Added documentation for ctest.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/ctest.cxx | 103 |
1 files changed, 82 insertions, 21 deletions
diff --git a/Source/ctest.cxx b/Source/ctest.cxx index f0756ad..3236c1d 100644 --- a/Source/ctest.cxx +++ b/Source/ctest.cxx @@ -17,10 +17,92 @@ #include "cmCTest.h" #include "cmSystemTools.h" +// Need these for documentation support. +#include "cmake.h" +#include "cmDocumentation.h" + +//---------------------------------------------------------------------------- +static const cmDocumentationEntry cmDocumentationName[] = +{ + {0, + " ctest - Testing driver provided by CMake.", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const cmDocumentationEntry cmDocumentationUsage[] = +{ + {0, + " ctest [options]", 0}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const cmDocumentationEntry cmDocumentationDescription[] = +{ + {0, + "The \"ctest\" executable is the CMake test driver program. " + "CMake-generated build trees created for projects that use " + "the ENABLE_TESTING and ADD_TEST commands have testing support. " + "This program will run the tests and report results.", 0}, + CMAKE_STANDARD_INTRODUCTION, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const cmDocumentationEntry cmDocumentationOptions[] = +{ + {"-C <config>", "Choose configuration to test.", + "Some CMake-generated build trees can have multiple build configurations " + "in the same tree. This option can be used to specify which one should " + "be tested. Example configurations are \"Debug\" and \"Release\"."}, + {"-V,--verbose", "Enable verbose output from tests.", + "Test output is normally suppressed and only summary information is " + "displayed. This option will show all test output."}, + {"-N,--show-only", "Disable actual execution of tests.", + "This option tells ctest to list the tests that would be run but not " + "actually run them. Useful in conjunction with the -R and -E options."}, + {"-R <regex>", "Run tests matching regular expression.", + "This option tells ctest to run only the tests whose names match the " + "given regular expression."}, + {"-E <regex>", "Exclude tests matching regular expression.", + "This option tells ctest to NOT run the tests whose names match the " + "given regular expression."}, + {0,0,0} +}; + +//---------------------------------------------------------------------------- +static const cmDocumentationEntry cmDocumentationSeeAlso[] = +{ + {0, "cmake", 0}, + {0, "ccmake", 0}, + {0, 0, 0} +}; + // this is a test driver program for cmCTest. int main (int argc, char *argv[]) { cmSystemTools::EnableMSVCDebugHook(); + + // If there is a testing input file, check for documentation options + // only if there are actually arguments. We want running without + // arguments to run tests. + if(argc > 1 || !cmSystemTools::FileExists("DartTestfile.txt")) + { + cmDocumentation doc; + if(doc.CheckOptions(argc, argv)) + { + // Construct and print requested documentation. + doc.SetName("ctest"); + doc.SetNameSection(cmDocumentationName); + doc.SetUsageSection(cmDocumentationUsage); + doc.SetDescriptionSection(cmDocumentationDescription); + doc.SetOptionsSection(cmDocumentationOptions); + doc.SetSeeAlsoList(cmDocumentationSeeAlso); + return doc.PrintRequestedDocumentation(std::cout)? 0:1; + } + } + cmCTest inst; // look at the args @@ -151,27 +233,6 @@ int main (int argc, char *argv[]) inst.m_ExcludeRegExp = args[i+1]; inst.m_UseExcludeRegExpFirst = inst.m_UseIncludeRegExp ? false : true; } - - if(arg.find("-h") == 0 || - arg.find("-help") == 0 || - arg.find("-H") == 0 || - arg.find("--help") == 0 || - arg.find("/H") == 0 || - arg.find("/HELP") == 0 || - arg.find("/?") == 0) - { - std::cerr << "Usage: " << argv[0] << " <options>" << std::endl - << "\t -C type Specify config type" << std::endl - << "\t -E test Specify regular expression for tests to exclude" - << std::endl - << "\t -R test Specify regular expression for tests to include" - << std::endl - << "\t -V Verbose testing" << std::endl - << "\t -N Only show what would be done without this option" - << std::endl - << "\t -H Help page" << std::endl; - return 1; - } } // call process directory |