// // This file is distributed under the MIT License. See LICENSE.md for details. // #include "revng/Model/Binary.h" #include "revng/Model/Filters.h" static bool verify(const model::TypeDefinition &ModelType, const model::Binary &, const bool Assert) { return ModelType.verify(Assert); } static bool verify(const model::Type &ModelType, const model::Binary &, const bool Assert) { return ModelType.verify(Assert); } static bool verify(const model::Binary &Tree, const bool Assert) { return Tree.verify(Assert); } static TupleTree serializeDeserialize(const TupleTree &T) { std::string Buffer; T.serialize(Buffer); auto Deserialized = cantFail(TupleTree::fromString(Buffer)); std::string OtherBuffer; Deserialized.serialize(OtherBuffer); return Deserialized; } static bool checkSerialization(const TupleTree &T) { revng_check(T->verify(true)); auto Deserialized = serializeDeserialize(T); revng_check(Deserialized->verify(true)); return T->TypeDefinitions() == Deserialized->TypeDefinitions(); } #include "revng/tests/unit/ModelType.inc"