76 lines
3.1 KiB
C++
76 lines
3.1 KiB
C++
// 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;
|
|
}
|
|
|
|
|
|
|