+ if (_only_run.empty() == false and
+ fnmatch(_only_run.c_str(), (*iter)->name(), 0))
+ {
+ continue;
+ }
+
+ _total++;
+
+ try {
+ switch ((*iter)->exec())
+ {
+ case TEST_FAILURE:
+ _failed++;
+ break;
+
+ case TEST_SKIPPED:
+ _skipped++;
+ break;
+
+ // exec() can return SUCCESS, but that doesn't mean that some tests did
+ // not fail or get skipped.
+ case TEST_SUCCESS:
+ _success++;
+ break;
+ }
+ }
+ catch (libtest::fatal& e)
+ {
+ stream::cerr(e.file(), e.line(), e.func()) << e.mesg();
+ }
+ catch (libtest::disconnected& e)
+ {
+ Error << "Unhandled disconnection occurred:" << e.what();
+ throw;
+ }
+
+ Outn();