65 lines
1.4 KiB
C++
65 lines
1.4 KiB
C++
|
#include <string>
|
||
|
#include <sstream>
|
||
|
#include <iostream>
|
||
|
#include "xmlrpc-c/girerr.hpp"
|
||
|
using girerr::error;
|
||
|
using girerr::throwf;
|
||
|
|
||
|
#include "tools.h"
|
||
|
|
||
|
using namespace std;
|
||
|
|
||
|
testSuite::~testSuite() {
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
void
|
||
|
testSuite::run(unsigned int const indentation) {
|
||
|
try {
|
||
|
cout << string(indentation*2, ' ')
|
||
|
<< "Running " << suiteName() << endl;
|
||
|
this->runtests(indentation);
|
||
|
} catch (error const& error) {
|
||
|
throwf("%s failed. %s", suiteName().c_str(), error.what());
|
||
|
} catch (...) { failures++;
|
||
|
throw(error(suiteName() + string(" failed. ") +
|
||
|
string("It threw an unexpected type of object")));
|
||
|
}
|
||
|
cout << string(indentation*2, ' ')
|
||
|
<< suiteName() << " tests passed." << endl;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
// This is a good place to set a breakpoint.
|
||
|
void
|
||
|
logFailedTest(const char * const fileName,
|
||
|
unsigned int const lineNum,
|
||
|
const char * const statement) {
|
||
|
|
||
|
ostringstream msg;
|
||
|
|
||
|
msg << endl
|
||
|
<< fileName << ":" << lineNum
|
||
|
<< ": expected (" << statement << ")" << endl;
|
||
|
|
||
|
throw(error(msg.str()));
|
||
|
}
|
||
|
|
||
|
|
||
|
error
|
||
|
fileLineError(string const filename,
|
||
|
unsigned int const lineNumber,
|
||
|
string const description) {
|
||
|
|
||
|
ostringstream combined;
|
||
|
|
||
|
combined << filename << ":" << lineNumber << " " << description;
|
||
|
|
||
|
return error(combined.str());
|
||
|
}
|
||
|
|
||
|
|
||
|
|