// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. #include #include #include class LocalCommunicatorTest : public ::testing::Test { protected: void SetUp() override { bootstrap = std::make_shared(0, 1); bootstrap->initialize(bootstrap->createUniqueId()); comm = std::make_shared(bootstrap); } std::shared_ptr bootstrap; std::shared_ptr comm; }; TEST_F(LocalCommunicatorTest, RegisterMemory) { int dummy[42]; auto memory = comm->registerMemory(&dummy, sizeof(dummy), mscclpp::NoTransports); EXPECT_EQ(memory.data(), &dummy); EXPECT_EQ(memory.size(), sizeof(dummy)); EXPECT_EQ(memory.transports(), mscclpp::NoTransports); } TEST_F(LocalCommunicatorTest, SendMemoryToSelf) { int dummy[42]; auto memory = comm->registerMemory(&dummy, sizeof(dummy), mscclpp::NoTransports); comm->sendMemory(memory, 0, 0); auto memoryFuture = comm->recvMemory(0, 0); auto sameMemory = memoryFuture.get(); EXPECT_EQ(sameMemory.data(), memory.data()); EXPECT_EQ(sameMemory.size(), memory.size()); EXPECT_EQ(sameMemory.transports(), memory.transports()); }