| // Copyright 2018 The Fuchsia 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 "garnet/drivers/gpu/msd-vsl-gc/src/msd_vsl_connection.h" |
| #include "mock/mock_bus_mapper.h" |
| #include "gtest/gtest.h" |
| |
| class TestMsdVslConnection : public MsdVslConnection::Owner { |
| public: |
| magma::PlatformBusMapper* bus_mapper() override { return &mock_bus_mapper_; } |
| |
| void ConnectionReleased(MsdVslConnection* connection) override |
| { |
| connection_released_ = connection; |
| } |
| |
| void Released() |
| { |
| auto connection = |
| std::make_unique<MsdVslConnection>(this, 0, std::make_shared<AddressSpace>(this), 1000); |
| MsdVslConnection* connection_ptr = connection.get(); |
| connection.reset(); |
| EXPECT_EQ(connection_released_, connection_ptr); |
| } |
| |
| private: |
| MockBusMapper mock_bus_mapper_; |
| MsdVslConnection* connection_released_ = nullptr; |
| }; |
| |
| TEST(MsdVslConnection, Released) { TestMsdVslConnection().Released(); } |