Test::Exception (and its terrifying prereq, Sub::Uplevel) have caused us a few
breaks-in-blead situations.

This week, I released Test::Fatal, which provides a much simpler way to test
for code that throws exceptions.  It uses Try::Tiny and does not try to hide
its calling stack frames.

The branch rfc/test-fatal completely removes any dependency on Test::Exception,
and thus on Sub::Uplevel.  I had originally planned to rewrite all the test
files, but this quickly became too boring and overwhelming.  Instead, after the
first pile of rewriting, I wrote a thin API compatibility layer with
Test::Exception.  It would be nice to continue to remove its use, but I think
it is totally safe.

It is also reasonable to consider not making Test::Fatal a prereq, but to
inline its &exception into t::lib::TestFatal.

I did not touch *any* code in *.pm files and all tests still pass.  There seems
to be a measurable but tiny performance increase. :)

-- 
rjbs

Reply via email to