blob: 686f5e7398cc0b3eb93f4531116ec4b992a1e115 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "mojo/edk/system/message_in_transit_test_utils.h"
#include "mojo/edk/util/make_unique.h"
#include "testing/gtest/include/gtest/gtest.h"
using mojo::util::MakeUnique;
namespace mojo {
namespace system {
namespace test {
std::unique_ptr<MessageInTransit> MakeTestMessage(unsigned id) {
return MakeUnique<MessageInTransit>(
MessageInTransit::Type::ENDPOINT_CLIENT,
MessageInTransit::Subtype::ENDPOINT_CLIENT_DATA,
static_cast<uint32_t>(sizeof(id)), &id);
}
void VerifyTestMessage(const MessageInTransit* message, unsigned id) {
ASSERT_TRUE(message);
EXPECT_EQ(MessageInTransit::Type::ENDPOINT_CLIENT, message->type());
EXPECT_EQ(MessageInTransit::Subtype::ENDPOINT_CLIENT_DATA,
message->subtype());
EXPECT_EQ(sizeof(id), message->num_bytes());
EXPECT_EQ(id, *static_cast<const unsigned*>(message->bytes()));
}
bool IsTestMessage(MessageInTransit* message, unsigned* id) {
if (message->type() != MessageInTransit::Type::ENDPOINT_CLIENT ||
message->subtype() != MessageInTransit::Subtype::ENDPOINT_CLIENT_DATA ||
message->num_bytes() != sizeof(*id))
return false;
*id = *static_cast<const unsigned*>(message->bytes());
return true;
}
} // namespace test
} // namespace system
} // namespace mojo