| Index: ppapi/shared_impl/unittest_utils.cc
|
| diff --git a/ppapi/shared_impl/unittest_utils.cc b/ppapi/shared_impl/unittest_utils.cc
|
| index f5d064b4db669e0ad939a55ebfca05cb2ce99ab0..f613882dde54291c30c4b2ed2e8249a88961aecf 100644
|
| --- a/ppapi/shared_impl/unittest_utils.cc
|
| +++ b/ppapi/shared_impl/unittest_utils.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/logging.h"
|
| #include "ppapi/shared_impl/array_var.h"
|
| #include "ppapi/shared_impl/dictionary_var.h"
|
| +#include "ppapi/shared_impl/resource_var.h"
|
| #include "ppapi/shared_impl/var.h"
|
| #include "ppapi/shared_impl/var_tracker.h"
|
|
|
| @@ -151,6 +152,39 @@ bool Equals(const PP_Var& expected,
|
| }
|
| return true;
|
| }
|
| + case PP_VARTYPE_RESOURCE: {
|
| + ResourceVar* expected_var = ResourceVar::FromPPVar(expected);
|
| + ResourceVar* actual_var = ResourceVar::FromPPVar(actual);
|
| + DCHECK(expected_var && actual_var);
|
| + if (expected_var->pp_resource() != actual_var->pp_resource()) {
|
| + LOG(ERROR) << "expected: " << expected_var->pp_resource() << " actual: "
|
| + << actual_var->pp_resource();
|
| + return false;
|
| + }
|
| + IPC::Message actual_message(actual_var->creation_message());
|
| + const IPC::Message& expected_message = expected_var->creation_message();
|
| + if (expected_message.size() != actual_message.size()) {
|
| + LOG(ERROR) << "expected creation message size: "
|
| + << expected_message.size() << " actual: "
|
| + << actual_message.size();
|
| + return false;
|
| + }
|
| +
|
| + // Set the upper 24 bits of actual creation_message flags to the same as
|
| + // expected. This is an unpredictable reference number that changes
|
| + // between serialization/deserialization, and we do not want it to cause
|
| + // the comparison to fail.
|
| + actual_message.SetHeaderValues(actual_message.routing_id(),
|
| + actual_message.type(),
|
| + (expected_message.flags() & 0xffffff00) |
|
| + (actual_message.flags() & 0xff));
|
| + if (memcmp(expected_message.data(), actual_message.data(),
|
| + expected_message.size()) != 0) {
|
| + LOG(ERROR) << "expected creation message does not match actual.";
|
| + return false;
|
| + }
|
| + return true;
|
| + }
|
| }
|
| NOTREACHED();
|
| return false;
|
|
|