You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.5 KiB
C++
64 lines
1.5 KiB
C++
//============================================================================
|
|
// ET: embedded test; basic C++ test example
|
|
//============================================================================
|
|
#include "sum.hpp" // Code Under Test (CUT)
|
|
#include "et.h" // ET: embedded test
|
|
#include "dbc_assert.h" // Design By Contract (DBC) assertions
|
|
|
|
extern "C" {
|
|
|
|
static CUT::Sum sum_inst(123); // instance Sum class
|
|
|
|
void setup(void) {
|
|
// executed before *every* non-skipped test
|
|
sum_inst.clear();
|
|
}
|
|
|
|
void teardown(void) {
|
|
// executed after *every* non-skipped and non-failing test
|
|
sum_inst.clear();
|
|
}
|
|
|
|
// test group ----------------------------------------------------------------
|
|
TEST_GROUP("Basic") {
|
|
|
|
TEST("CUT test (passing)") {
|
|
sum_inst.add(2);
|
|
VERIFY(5 == sum_inst.add(3));
|
|
}
|
|
|
|
SKIP_TEST("test (skipped)") {
|
|
VERIFY(3 == 2*2); // <-- would fail, but it's not executed
|
|
}
|
|
|
|
TEST("CUT test (failing)") {
|
|
sum_inst.add(3);
|
|
VERIFY(5 == sum_inst.add(2));
|
|
VERIFY(4 == sum_inst.get()); // <-- should fail
|
|
}
|
|
|
|
// this test follows a failing test and is NOT executed
|
|
TEST("simple test (passing)") {
|
|
VERIFY(4 == 2*2);
|
|
}
|
|
|
|
} // TEST_GROUP()
|
|
|
|
} // extern "C"
|
|
|
|
//============================================================================
|
|
// dependencies for the CUT
|
|
|
|
extern "C" {
|
|
|
|
//............................................................................
|
|
DBC_NORETURN
|
|
void DBC_fault_handler(char const * module, int label) {
|
|
VERIFY_ASSERT(module, label);
|
|
for (;;) { /* explicitly make it "noreturn" */
|
|
}
|
|
}
|
|
|
|
} // extern "C"
|
|
|