MCPcopy Create free account
hub / github.com/PiSCSI/piscsi / TEST

Function TEST

cpp/test/controller_manager_test.cpp:14–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12#include "controllers/controller_manager.h"
13
14TEST(ControllerManagerTest, LifeCycle)
15{
16 const int ID1 = 4;
17 const int ID2 = 5;
18 const int LUN1 = 0;
19 const int LUN2 = 3;
20
21 auto bus = make_shared<MockBus>();
22 ControllerManager controller_manager;
23 DeviceFactory device_factory;
24
25 auto device = device_factory.CreateDevice(SCHS, -1, "");
26 EXPECT_FALSE(controller_manager.AttachToController(*bus, ID1, device));
27
28 device = device_factory.CreateDevice(SCHS, LUN1, "");
29 EXPECT_TRUE(controller_manager.AttachToController(*bus, ID1, device));
30 EXPECT_TRUE(controller_manager.HasController(ID1));
31 auto controller = controller_manager.FindController(ID1);
32 EXPECT_NE(nullptr, controller);
33 EXPECT_EQ(1, controller->GetLunCount());
34 EXPECT_FALSE(controller_manager.HasController(0));
35 EXPECT_EQ(nullptr, controller_manager.FindController(0));
36 EXPECT_TRUE(controller_manager.HasDeviceForIdAndLun(ID1, LUN1));
37 EXPECT_NE(nullptr, controller_manager.GetDeviceForIdAndLun(ID1, LUN1));
38 EXPECT_FALSE(controller_manager.HasDeviceForIdAndLun(0, 0));
39 EXPECT_EQ(nullptr, controller_manager.GetDeviceForIdAndLun(0, 0));
40
41 device = device_factory.CreateDevice(SCHS, LUN2, "");
42 EXPECT_TRUE(controller_manager.AttachToController(*bus, ID1, device));
43 EXPECT_TRUE(controller_manager.HasController(ID1));
44 controller = controller_manager.FindController(ID1);
45 EXPECT_NE(nullptr, controller_manager.FindController(ID1));
46 EXPECT_TRUE(controller_manager.DeleteController(*controller));
47 EXPECT_EQ(nullptr, controller_manager.FindController(ID1));
48
49 auto disk = make_shared<MockDisk>();
50 EXPECT_TRUE(controller_manager.AttachToController(*bus, ID2, disk));
51 EXPECT_CALL(*disk, FlushCache);
52 controller_manager.DeleteAllControllers();
53 EXPECT_FALSE(controller_manager.HasController(ID1));
54 EXPECT_EQ(nullptr, controller_manager.FindController(ID1));
55 EXPECT_EQ(nullptr, controller_manager.GetDeviceForIdAndLun(ID1, LUN1));
56 EXPECT_FALSE(controller_manager.HasDeviceForIdAndLun(ID1, LUN1));
57 EXPECT_FALSE(controller_manager.HasController(ID2));
58 EXPECT_EQ(nullptr, controller_manager.FindController(ID2));
59 EXPECT_EQ(nullptr, controller_manager.GetDeviceForIdAndLun(ID2, LUN1));
60 EXPECT_FALSE(controller_manager.HasDeviceForIdAndLun(ID2, LUN1));
61}
62
63TEST(ControllerManagerTest, AttachToController)
64{

Callers

nothing calls this directly

Calls 10

AttachToControllerMethod · 0.80
HasControllerMethod · 0.80
FindControllerMethod · 0.80
GetLunCountMethod · 0.80
HasDeviceForIdAndLunMethod · 0.80
GetDeviceForIdAndLunMethod · 0.80
DeleteControllerMethod · 0.80
DeleteAllControllersMethod · 0.80
CreateDeviceMethod · 0.45
ProcessOnControllerMethod · 0.45

Tested by

no test coverage detected