128
131
mga::DeviceQuirks quirks(mock_ops);
129
132
EXPECT_THAT(quirks.aligned_width(720), Eq(736));
135
struct DeviceQuirks : testing::Test
139
mga::DeviceQuirks::add_options(desc);
142
void disable_num_framebuffers_quirk()
145
char const* argv[argc] = {
147
"--enable-num-framebuffers-quirk=false"
150
options.parse_arguments(desc, argc, argv);
153
void disable_single_gralloc_instance_quirk()
156
char const* argv[argc] = {
158
"--enable-single-gralloc-instance-quirk=false"
161
options.parse_arguments(desc, argc, argv);
164
void disable_width_alignment_quirk()
167
char const* argv[argc] = {
169
"--enable-width-alignment-quirk=false"
172
options.parse_arguments(desc, argc, argv);
175
bpo::options_description desc{"Options"};
176
mir::options::ProgramOption options;
179
TEST_F(DeviceQuirks, number_of_framebuffers_quirk_can_be_disabled)
181
using namespace testing;
182
char const default_str[] = "";
183
char const name_str[] = "mx3";
186
EXPECT_CALL(mock_ops, property_get(StrEq("ro.product.device"), _, StrEq(default_str)))
189
(char const*, char* value, char const*)
191
strncpy(value, name_str, PROP_VALUE_MAX);
195
disable_num_framebuffers_quirk();
196
mga::DeviceQuirks quirks(mock_ops, options);
197
EXPECT_THAT(quirks.num_framebuffers(), Ne(3));
200
TEST_F(DeviceQuirks, single_gralloc_instance_quirk_can_be_disabled)
202
using namespace testing;
203
char const default_str[] = "";
204
char const krillin_name_str[] = "krillin";
207
EXPECT_CALL(mock_ops, property_get(StrEq("ro.product.device"), _, StrEq(default_str)))
209
.WillOnce(Invoke([&](char const*, char* value, char const*)
211
strncpy(value, krillin_name_str, PROP_VALUE_MAX);
215
disable_single_gralloc_instance_quirk();
216
mga::DeviceQuirks quirks(mock_ops, options);
217
EXPECT_TRUE(quirks.gralloc_reopenable_after_close());
220
TEST_F(DeviceQuirks, width_alignment_quirk_can_be_disabled)
222
using namespace testing;
223
char const default_str[] = "";
224
char const vegetahd_name_str[] = "vegetahd";
227
EXPECT_CALL(mock_ops, property_get(StrEq("ro.product.device"), _, StrEq(default_str)))
229
.WillOnce(Invoke([&](char const*, char* value, char const*)
231
strncpy(value, vegetahd_name_str, PROP_VALUE_MAX);
235
disable_width_alignment_quirk();
236
mga::DeviceQuirks quirks(mock_ops, options);
237
EXPECT_THAT(quirks.aligned_width(720), Eq(720));