summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/test/example_args.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/test/example_args.cpp')
-rw-r--r--ml/dlib/dlib/test/example_args.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/ml/dlib/dlib/test/example_args.cpp b/ml/dlib/dlib/test/example_args.cpp
new file mode 100644
index 000000000..573216c79
--- /dev/null
+++ b/ml/dlib/dlib/test/example_args.cpp
@@ -0,0 +1,75 @@
+// Copyright (C) 2008 Davis E. King (davis@dlib.net)
+// License: Boost Software License See LICENSE.txt for the full license.
+
+#include "tester.h"
+
+// This is called an unnamed-namespace and it has the effect of making everything
+// inside this file "private" so that everything you declare will have static linkage.
+// Thus we won't have any multiply defined symbol errors coming out of the linker when
+// we try to compile the test suite.
+namespace
+{
+ // Declare the logger we will use in this test. The name of the logger
+ // should start with "test."
+ dlib::logger dlog("test.example_args");
+
+ using namespace test;
+
+ class example_args_tester : public tester
+ {
+ /*!
+ WHAT THIS OBJECT REPRESENTS
+ This object represents a unit test. When it is constructed
+ it adds itself into the testing framework.
+
+ This particular test requires the user to supply a command line
+ argument when they run it.
+ !*/
+ public:
+ example_args_tester (
+ ) :
+ tester (
+ "test_example_args", // the command line argument name for this test
+ "Run example tests with argument.", // the command line argument description
+ 1 // the number of command line arguments for this test
+ )
+ {}
+
+ void perform_test (
+ const std::string& arg
+ )
+ {
+ // This message gets logged to the file debug.txt if the user has enabled logging by
+ // supplying the -d option on the command line (and they haven't set the logging level
+ // to something higher than LINFO).
+ dlog << dlib::LINFO << "some message you want to log";
+ dlog << dlib::LINFO << "the argument passed to this test was " << arg;
+
+ // This test is considered a success if this function doesn't throw an exception.
+ // So we can use the DLIB_TEST_MSG macro to perform our tests since it throws an
+ // exception containing a message if its first argument is false.
+
+ // make sure 3 is bigger than 2
+ DLIB_TEST_MSG(3 > 2,"This message prints if your compiler doesn't know 3 is bigger than 2");
+
+ // make sure 5 is not equal to 9
+ DLIB_TEST_MSG(5 != 9,"This message prints if your compiler thinks 5 is the same as 9");
+
+ // If your test takes a long time to run you can also call print_spinner()
+ // periodically. This will cause a spinning / character to display on the
+ // console to indicate to the user that your test is still running (rather
+ // than hung)
+ print_spinner();
+ }
+
+ };
+
+ // Create an instance of this object. Doing this causes this test
+ // to be automatically inserted into the testing framework whenever this cpp file
+ // is linked into the project. Note that since we are inside an unnamed-namespace
+ // we won't get any linker errors about the symbol a being defined multiple times.
+ example_args_tester a;
+}
+
+
+