X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fframework.cc;h=b5ad738b2a88be1ff35ed91ab08e2c39d3f36376;hb=00a8f6f7d315dc3fce0b0e5a1987c8663488ae1c;hp=ea7ca66505e79af9811da02b3701f854c772f151;hpb=23bbe3972dada1e21493437ba64be129e86b59fc;p=awesomized%2Flibmemcached diff --git a/libtest/framework.cc b/libtest/framework.cc index ea7ca665..b5ad738b 100644 --- a/libtest/framework.cc +++ b/libtest/framework.cc @@ -43,12 +43,12 @@ #include #include -using namespace libtest; +namespace libtest { Framework::Framework(libtest::SignalThread& signal, + const std::string& name_, const std::string& only_run_arg, const std::string& wildcard_arg) : - _collections(NULL), _total(0), _success(0), _skipped(0), @@ -61,11 +61,15 @@ Framework::Framework(libtest::SignalThread& signal, _creators_ptr(NULL), _signal(signal), _only_run(only_run_arg), - _wildcard(wildcard_arg) + _wildcard(wildcard_arg), + _name(name_) { get_world(this); +} - for (collection_st *next= _collections; next and next->name; next++) +void Framework::collections(collection_st* collections_) +{ + for (collection_st *next= collections_; next and next->name; next++) { _collection.push_back(new Collection(this, next)); } @@ -84,7 +88,7 @@ Framework::~Framework() for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { delete *iter; } @@ -104,7 +108,7 @@ void Framework::exec() { for (std::vector::iterator iter= _collection.begin(); iter != _collection.end() and (_signal.is_shutdown() == false); - iter++) + ++iter) { if (_only_run.empty() == false and fnmatch(_only_run.c_str(), (*iter)->name(), 0)) @@ -114,7 +118,8 @@ void Framework::exec() _total++; - try { + try + { switch ((*iter)->exec()) { case TEST_FAILURE: @@ -134,16 +139,23 @@ void Framework::exec() } catch (libtest::fatal& e) { + _failed++; stream::cerr(e.file(), e.line(), e.func()) << e.mesg(); } catch (libtest::disconnected& e) { - Error << "Unhandled disconnection occurred:" << e.what(); + _failed++; + stream::cerr(e.file(), e.line(), e.func()) << "Unhandled disconnection occurred: " << e.mesg(); + throw; + } + catch (...) + { + _failed++; throw; } - - Outn(); } + + void xml(const std::string& testsuites_name, std::ostream& output); } uint32_t Framework::sum_total() @@ -151,7 +163,7 @@ uint32_t Framework::sum_total() uint32_t count= 0; for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { count+= (*iter)->total(); } @@ -164,7 +176,7 @@ uint32_t Framework::sum_success() uint32_t count= 0; for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { count+= (*iter)->success(); } @@ -177,7 +189,7 @@ uint32_t Framework::sum_skipped() uint32_t count= 0; for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { count+= (*iter)->skipped(); } @@ -190,7 +202,7 @@ uint32_t Framework::sum_failed() uint32_t count= 0; for (std::vector::iterator iter= _collection.begin(); iter != _collection.end(); - iter++) + ++iter) { count+= (*iter)->failed(); } @@ -219,3 +231,5 @@ test_return_t Framework::create() return rc; } + +} // namespace libtest