Add Antithesis intrumentation (#5042)

* Copy Antithesis SDK version 0.4.0 to directory external/
* Add build option `voidstar` to enable instrumentation with Antithesis SDK
* Define instrumentation macros ASSERT and UNREACHABLE in terms of regular C assert
* Replace asserts with named ASSERT or UNREACHABLE
* Add UNREACHABLE to LogicError
* Document instrumentation macros in CONTRIBUTING.md
This commit is contained in:
Bronek Kozicki
2024-12-03 14:52:21 -05:00
committed by Ed Hennis
parent f64cf9187a
commit d7e949193f
261 changed files with 3848 additions and 1034 deletions

View File

@@ -18,8 +18,8 @@
//==============================================================================
#include <xrpl/basics/contract.h>
#include <xrpl/beast/utility/instrumentation.h>
#include <xrpl/json/Object.h>
#include <cassert>
namespace Json {
@@ -168,7 +168,7 @@ Array::append(Json::Value const& v)
return;
}
}
assert(false); // Can't get here.
UNREACHABLE("Json::Array::append : invalid type");
}
void
@@ -203,7 +203,7 @@ Object::set(std::string const& k, Json::Value const& v)
return;
}
}
assert(false); // Can't get here.
UNREACHABLE("Json::Object::set : invalid type");
}
//------------------------------------------------------------------------------
@@ -214,7 +214,7 @@ template <class Object>
void
doCopyFrom(Object& to, Json::Value const& from)
{
assert(from.isObjectOrNull());
ASSERT(from.isObjectOrNull(), "Json::doCopyFrom : valid input type");
auto members = from.getMemberNames();
for (auto& m : members)
to[m] = from[m];