mirror of https://github.com/ArduPilot/ardupilot
Fix a serious typo, add more documentation.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1538 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
parent
e2f15b3b97
commit
fd83ba7753
|
@ -18,7 +18,7 @@
|
||||||
/// for later reporting. Only one test may be performed within each block.
|
/// for later reporting. Only one test may be performed within each block.
|
||||||
///
|
///
|
||||||
/// Within the test, use the REQUIRE macro to describe a condition that must be
|
/// Within the test, use the REQUIRE macro to describe a condition that must be
|
||||||
/// met for the test to fail. If the condition within the macro is not met,
|
/// met for the test to pass. If the condition within the macro is not met,
|
||||||
/// the condition will be output as a diagnostic and the test will be considered
|
/// the condition will be output as a diagnostic and the test will be considered
|
||||||
/// to have failed.
|
/// to have failed.
|
||||||
///
|
///
|
||||||
|
@ -29,27 +29,52 @@
|
||||||
/// to summarize the results of all of the tests that were performed.
|
/// to summarize the results of all of the tests that were performed.
|
||||||
///
|
///
|
||||||
|
|
||||||
|
/// Unit test state and methods.
|
||||||
|
///
|
||||||
class Test
|
class Test
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/// Constructor - creates a new test.
|
||||||
|
///
|
||||||
|
/// Normally called by the TEST macro.
|
||||||
|
///
|
||||||
|
/// @param name The name of the test being started.
|
||||||
|
///
|
||||||
Test(const char *name);
|
Test(const char *name);
|
||||||
|
|
||||||
|
/// Destructor - ends the test.
|
||||||
|
///
|
||||||
~Test();
|
~Test();
|
||||||
|
|
||||||
|
/// Perform a success check.
|
||||||
|
///
|
||||||
|
/// @param expr If false, the test has failed.
|
||||||
|
/// @param source The expression source; emitted in the diagnostic
|
||||||
|
/// indicating test failure.
|
||||||
|
///
|
||||||
void require(bool expr, const char *source);
|
void require(bool expr, const char *source);
|
||||||
|
|
||||||
|
/// Report the overall number of tests/pass/fails.
|
||||||
|
///
|
||||||
static void report();
|
static void report();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const char *_name;
|
const char *_name; ///< name of the current test
|
||||||
bool _fail;
|
bool _fail; ///< set if any ::require calls indicate the test failed
|
||||||
static int _passed;
|
static int _passed; ///< global pass count
|
||||||
static int _failed;
|
static int _failed; ///< global fail count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Constructor
|
||||||
|
///
|
||||||
Test::Test(const char *name) :
|
Test::Test(const char *name) :
|
||||||
_name(name),
|
_name(name),
|
||||||
_fail(false)
|
_fail(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Destructor
|
||||||
|
///
|
||||||
Test::~Test()
|
Test::~Test()
|
||||||
{
|
{
|
||||||
Serial.printf("%s: %s\n", _fail ? "FAILED" : "passed", _name);
|
Serial.printf("%s: %s\n", _fail ? "FAILED" : "passed", _name);
|
||||||
|
@ -60,6 +85,8 @@ Test::~Test()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Success check
|
||||||
|
///
|
||||||
void
|
void
|
||||||
Test::require(bool expr, const char *source)
|
Test::require(bool expr, const char *source)
|
||||||
{
|
{
|
||||||
|
@ -69,6 +96,8 @@ Test::require(bool expr, const char *source)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Summary report
|
||||||
|
///
|
||||||
void
|
void
|
||||||
Test::report()
|
Test::report()
|
||||||
{
|
{
|
||||||
|
@ -78,6 +107,21 @@ Test::report()
|
||||||
int Test::_passed = 0;
|
int Test::_passed = 0;
|
||||||
int Test::_failed = 0;
|
int Test::_failed = 0;
|
||||||
|
|
||||||
|
/// Start a new test.
|
||||||
|
///
|
||||||
|
/// This should be invoked at the beginning of a block, before any REQUIRE
|
||||||
|
/// statements. A new test called name is started, and subsequent REQUIRE
|
||||||
|
/// statements will be applied to the test. The test will continue until
|
||||||
|
/// the end of the block (or until the _test object that is created otherwise
|
||||||
|
/// goes out of scope).
|
||||||
|
///
|
||||||
#define TEST(name) Test _test(#name)
|
#define TEST(name) Test _test(#name)
|
||||||
|
|
||||||
|
/// Attach an expression to the test's success criteria.
|
||||||
|
///
|
||||||
|
/// The expression expr must evaluate true for the test to pass. If
|
||||||
|
/// it does not, the text of the expression is output as a diagnostic
|
||||||
|
/// and the test is marked as a failure.
|
||||||
|
///
|
||||||
#define REQUIRE(expr) _test.require(expr, #expr)
|
#define REQUIRE(expr) _test.require(expr, #expr)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue