Add new unit test for opaque serialization.

One Bro begins a computation, another finishes it.

(This commit also fixes a problem with the serialization OpaqueVals.)
This commit is contained in:
Matthias Vallentin 2012-12-14 13:03:15 -08:00
parent b9d05f56d0
commit 69d8d29fbd
6 changed files with 99 additions and 20 deletions

View file

@ -3114,16 +3114,13 @@ void VectorVal::ValDescribe(ODesc* d) const
d->Add("]");
}
OpaqueVal::OpaqueVal(OpaqueType* t) : opaque_type(t) { }
OpaqueVal::OpaqueVal(OpaqueType* t)
: Val(t)
{
}
OpaqueVal::~OpaqueVal()
{
Unref(opaque_type);
}
bool OpaqueVal::IsValid() const
{
return false;
}
IMPLEMENT_SERIAL(OpaqueVal, SER_OPAQUE_VAL);
@ -3131,15 +3128,13 @@ IMPLEMENT_SERIAL(OpaqueVal, SER_OPAQUE_VAL);
bool OpaqueVal::DoSerialize(SerialInfo* info) const
{
DO_SERIALIZE(SER_OPAQUE_VAL, Val);
assert(opaque_type);
return opaque_type->Serialize(info);
return true;
}
bool OpaqueVal::DoUnserialize(UnserialInfo* info)
{
DO_UNSERIALIZE(Val);
opaque_type = static_cast<OpaqueType*>(BroType::Unserialize(info));
return opaque_type != 0;
return true;
}