1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
#include <string>
#include <sstream>
#include <iostream>
#ifdef _WIN32
# include <winsock2.h>
# include <ws2tcpip.h>
#else
# include <netinet/in.h>
#endif
#include "xmlrpc-c/girerr.hpp"
using girerr::error;
using girerr::throwf;
#include "tools.hpp"
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 (...) {
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());
}
struct in_addr
test_ipAddrFromDecimal(unsigned int const byte0,
unsigned int const byte1,
unsigned int const byte2,
unsigned int const byte3) {
struct in_addr retval;
retval.s_addr =
htonl((byte0 << 24) + (byte1 << 16) + (byte2 << 8) + (byte3 << 0));
return retval;
}
|