diff options
author | Vitaly Buka <vitalybuka@google.com> | 2020-01-15 17:30:20 -0800 |
---|---|---|
committer | Vitaly Buka <vitalybuka@gmail.com> | 2020-01-16 11:03:22 -0800 |
commit | 9eaf063427ffb3a48ef4f69ffc99496a766e99e6 (patch) | |
tree | 964835c2cb0c2a4730732799774c57bcc4fd14a6 | |
parent | ad520b3444534f6d1d03744ac430167c4988e185 (diff) | |
download | libprotobuf-mutator-9eaf063427ffb3a48ef4f69ffc99496a766e99e6.tar.gz |
Log message when IsInitialized assert fail
-rw-r--r-- | src/mutator.cc | 10 | ||||
-rw-r--r-- | src/mutator.h | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/mutator.cc b/src/mutator.cc index 53ef68e..b3e61cf 100644 --- a/src/mutator.cc +++ b/src/mutator.cc @@ -455,7 +455,7 @@ void Mutator::Mutate(Message* message, size_t size_increase_hint) { MutateImpl(message, size_increase_hint); InitializeAndTrim(message, kMaxInitializeDepth); - assert(!keep_initialized_ || message->IsInitialized()); + assert(IsInitialized(*message)); if (!post_processors_.empty()) { ApplyPostProcessing(message); @@ -533,7 +533,7 @@ void Mutator::CrossOver(const protobuf::Message& message1, CrossOverImpl(message1, message2); InitializeAndTrim(message2, kMaxInitializeDepth); - assert(!keep_initialized_ || message2->IsInitialized()); + assert(IsInitialized(*message2)); if (!post_processors_.empty()) { ApplyPostProcessing(message2); @@ -711,4 +711,10 @@ std::string Mutator::MutateUtf8String(const std::string& value, return str; } +bool Mutator::IsInitialized(const Message& message) const { + if (!keep_initialized_ || message.IsInitialized()) return true; + std::cerr << "Uninitialized: " << message.DebugString() << "\n"; + return false; +} + } // namespace protobuf_mutator diff --git a/src/mutator.h b/src/mutator.h index a60c8bb..c5c3af5 100644 --- a/src/mutator.h +++ b/src/mutator.h @@ -101,6 +101,7 @@ class Mutator { std::string MutateUtf8String(const std::string& value, size_t size_increase_hint); void ApplyPostProcessing(protobuf::Message* message); + bool IsInitialized(const protobuf::Message& message) const; bool keep_initialized_ = true; size_t random_to_default_ratio_ = 100; RandomEngine random_; |