Improve reporting of unusual unit test failures:

* Jobs with no unit tests are counted as failures. Resolves #3474
* Crashed processes are counted as failures. Resolves #3600
* Any tests specified on the command line test do not have matching
  suites are counted as failures.
* Remove unused CI manual test.
This commit is contained in:
Edward Hennis
2020-09-02 18:27:34 -04:00
committed by Nik Bougalis
parent 1129110be3
commit dbde686a97
4 changed files with 144 additions and 2 deletions

View File

@@ -182,6 +182,22 @@ multi_runner_base<IsParent>::inner::any_failed(bool v)
any_failed_ = any_failed_ || v;
}
template <bool IsParent>
std::size_t
multi_runner_base<IsParent>::inner::tests() const
{
std::lock_guard l{m_};
return results_.total;
}
template <bool IsParent>
std::size_t
multi_runner_base<IsParent>::inner::suites() const
{
std::lock_guard l{m_};
return results_.suites;
}
template <bool IsParent>
void
multi_runner_base<IsParent>::inner::inc_keep_alive_count()
@@ -348,6 +364,30 @@ multi_runner_base<IsParent>::message_queue_send(
message_queue_->send(s.c_str(), s.size(), /*priority*/ 0);
}
template <bool IsParent>
std::size_t
multi_runner_base<IsParent>::tests() const
{
return inner_->tests();
}
template <bool IsParent>
std::size_t
multi_runner_base<IsParent>::suites() const
{
return inner_->suites();
}
template <bool IsParent>
void
multi_runner_base<IsParent>::add_failures(std::size_t failures)
{
results results;
results.failed += failures;
add(results);
any_failed(failures != 0);
}
template <bool IsParent>
constexpr const char* multi_runner_base<IsParent>::shared_mem_name_;
template <bool IsParent>
@@ -445,6 +485,24 @@ multi_runner_parent::any_failed() const
return multi_runner_base<true>::any_failed();
}
std::size_t
multi_runner_parent::tests() const
{
return multi_runner_base<true>::tests();
}
std::size_t
multi_runner_parent::suites() const
{
return multi_runner_base<true>::suites();
}
void
multi_runner_parent::add_failures(std::size_t failures)
{
multi_runner_base<true>::add_failures(failures);
}
//------------------------------------------------------------------------------
multi_runner_child::multi_runner_child(
@@ -501,6 +559,25 @@ multi_runner_child::~multi_runner_child()
add(results_);
}
std::size_t
multi_runner_child::tests() const
{
return results_.total;
}
std::size_t
multi_runner_child::suites() const
{
return results_.suites;
}
void
multi_runner_child::add_failures(std::size_t failures)
{
results_.failed += failures;
any_failed(failures != 0);
}
void
multi_runner_child::on_suite_begin(beast::unit_test::suite_info const& info)
{