44
44
virtual void SetUp()
46
46
mock_fops = std::make_shared<testing::NiceMock<MockFileOps>>();
50
int dummy_fd_value{3};
51
int invalid_fd_value{-1};
52
mir::Fd dummy_fd{std::move(dummy_fd_value)};
53
mir::Fd invalid_fd{std::move(invalid_fd_value)};
51
54
std::shared_ptr<MockFileOps> mock_fops;
71
74
TEST_F(SyncSwTest, sync_wait)
73
EXPECT_CALL(*mock_fops, ioctl(dummy_fd, SYNC_IOC_WAIT, TimeoutMatches(-1)))
76
EXPECT_CALL(*mock_fops, ioctl(dummy_fd_value, SYNC_IOC_WAIT, TimeoutMatches(-1)))
75
mga::SyncFence fence1(mock_fops, dummy_fd);
78
mga::SyncFence fence1(mock_fops, std::move(dummy_fd));
78
81
//will not call ioctl
79
mga::SyncFence fence2(mock_fops, invalid_fd);
82
mga::SyncFence fence2(mock_fops, std::move(invalid_fd));
108
110
struct sync_merge_data expected_data_in { dummy_fd2, "name", 0 };
110
EXPECT_CALL(*mock_fops, ioctl(dummy_fd, static_cast<int>(SYNC_IOC_MERGE), MergeMatches(expected_data_in)))
112
EXPECT_CALL(*mock_fops, ioctl(dummy_fd_value, static_cast<int>(SYNC_IOC_MERGE), MergeMatches(expected_data_in)))
112
114
.WillOnce(Invoke(&setter, &IoctlSetter::merge_setter));
114
mga::SyncFence fence1(mock_fops, dummy_fd);
116
mga::SyncFence fence1(mock_fops, std::move(dummy_fd));
116
117
fence1.merge_with(dummy_fd2);
119
120
TEST_F(SyncSwTest, sync_merge_with_invalid_fd)
121
122
using namespace testing;
122
EXPECT_CALL(*mock_fops, ioctl(dummy_fd, static_cast<int>(SYNC_IOC_MERGE), _))
123
EXPECT_CALL(*mock_fops, ioctl(dummy_fd_value, static_cast<int>(SYNC_IOC_MERGE), _))
125
mga::SyncFence fence1(mock_fops, invalid_fd);
127
fence1.merge_with(dummy_fd);
126
mga::SyncFence fence1(mock_fops, std::move(dummy_fd));
127
fence1.merge_with(invalid_fd_value);
130
130
TEST_F(SyncSwTest, copy_dups_fd)
132
132
using namespace testing;
133
int fd2 = dummy_fd + 1;
134
EXPECT_CALL(*mock_fops, dup(dummy_fd))
133
int fd2 = dummy_fd_value + 1;
134
EXPECT_CALL(*mock_fops, dup(dummy_fd_value))
136
136
.WillOnce(Return(fd2));;
138
mga::SyncFence fence(mock_fops, dummy_fd);
138
mga::SyncFence fence(mock_fops, std::move(dummy_fd));
140
140
EXPECT_EQ(fd2, fence.copy_native_handle());