summaryrefslogtreecommitdiffstats
path: root/Help/guide/tutorial/Step4
diff options
context:
space:
mode:
Diffstat (limited to 'Help/guide/tutorial/Step4')
-rw-r--r--Help/guide/tutorial/Step4/CMakeLists.txt2
-rw-r--r--Help/guide/tutorial/Step4/directions.txt72
-rw-r--r--Help/guide/tutorial/Step4/tutorial.cxx3
3 files changed, 4 insertions, 73 deletions
diff --git a/Help/guide/tutorial/Step4/CMakeLists.txt b/Help/guide/tutorial/Step4/CMakeLists.txt
index 9ce60b9..a157bda 100644
--- a/Help/guide/tutorial/Step4/CMakeLists.txt
+++ b/Help/guide/tutorial/Step4/CMakeLists.txt
@@ -6,7 +6,7 @@ set(CMAKE_CXX_STANDARD 14)
# should we use our own math functions
option(USE_MYMATH "Use tutorial provided math implementation" ON)
-# the version number.
+# set the version number
set(Tutorial_VERSION_MAJOR 1)
set(Tutorial_VERSION_MINOR 0)
diff --git a/Help/guide/tutorial/Step4/directions.txt b/Help/guide/tutorial/Step4/directions.txt
deleted file mode 100644
index 91e4043..0000000
--- a/Help/guide/tutorial/Step4/directions.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-# Installing and Testing #
-
-Now we can start adding testing support and install rules to our project.
-
-The install rules are fairly simple; for MathFunctions we install the library
-and header file, for the application we install the executable and configured
-header.
-
-So to MathFunctions/CMakeLists.txt we add:
-
- install (TARGETS MathFunctions DESTINATION bin)
- install (FILES MathFunctions.h DESTINATION include)
-
-And the to top-level CMakeLists.txt we add:
-
- install(TARGETS Tutorial DESTINATION bin)
- install(FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h"
- DESTINATION include
- )
-
-That is all that is needed to create a basic local install of the tutorial.
-
-Run cmake or cmake-gui to configure the project and then build it with your
-chosen build tool. Then build the “install” target by typing 'make install'
-from the command line or build the INSTALL target from an IDE. This will
-install the appropriate header files, libraries, and executables.
-
-Verify that the installed Tutorial runs. Note: The CMake variable
-CMAKE_INSTALL_PREFIX is used to determine the root of where the files will
-be installed.
-
-Next let's test our application. Adding testing is an easy process. At the
-end of the top-level CMakeLists file we can add a number of basic tests to
-verify that the application is working correctly.
-
- # enable testing
- enable_testing()
-
- # does the application run
- add_test(NAME Runs COMMAND Tutorial 25)
-
- # does the usage message work?
- add_test(NAME Usage COMMAND Tutorial)
- set_tests_properties(Usage
- PROPERTIES PASS_REGULAR_EXPRESSION "Usage:.*number"
- )
-
- # define a function to simplify adding tests
- function(do_test target arg result)
- add_test(NAME Comp${arg} COMMAND ${target} ${arg})
- set_tests_properties(Comp${arg}
- PROPERTIES PASS_REGULAR_EXPRESSION ${result}
- )
- endfunction(do_test)
-
- # do a bunch of result based tests
- do_test(Tutorial 25 "25 is 5")
- do_test(Tutorial -25 "-25 is [-nan|nan|0]")
- do_test(Tutorial 0.0001 "0.0001 is 0.01")
-
-The first test simply verifies that the application runs, does not segfault or
-otherwise crash, and has a zero return value. This is the basic form of a CTest
-test.
-
-The Usage test uses a regular expression to verify that the usage message
-is printed when an incorrect number of arguments are provided.
-
-Lastly, we have a function called do_test that simplifies running the
-application and verifying that the computed square root is correct for given
-input.
-
-To run tests, cd to the binary directory and run “ctest -N” and “ctest -VV”.
diff --git a/Help/guide/tutorial/Step4/tutorial.cxx b/Help/guide/tutorial/Step4/tutorial.cxx
index c2b89df..8156a9c 100644
--- a/Help/guide/tutorial/Step4/tutorial.cxx
+++ b/Help/guide/tutorial/Step4/tutorial.cxx
@@ -5,6 +5,7 @@
#include "TutorialConfig.h"
+// should we include the MathFunctions header?
#ifdef USE_MYMATH
# include "MathFunctions.h"
#endif
@@ -12,6 +13,7 @@
int main(int argc, char* argv[])
{
if (argc < 2) {
+ // report version
std::cout << argv[0] << " Version " << Tutorial_VERSION_MAJOR << "."
<< Tutorial_VERSION_MINOR << std::endl;
std::cout << "Usage: " << argv[0] << " number" << std::endl;
@@ -20,6 +22,7 @@ int main(int argc, char* argv[])
double inputValue = std::stod(argv[1]);
+ // which square root function should we use?
#ifdef USE_MYMATH
double outputValue = mysqrt(inputValue);
#else