Skip to content

Commit bc36132

Browse files
committed
Fix uninitialized use of PangoContext in tests
1 parent f38a60a commit bc36132

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ test: test/test clean-coverage-run
8989
test-valgrind: test/test
9090
${VALGRIND} \
9191
--suppressions=.valgrind.suppressions \
92+
--track-origins=yes \
9293
--leak-check=full \
9394
--show-leak-kinds=definite \
9495
--errors-for-leak-kinds=definite \

test/draw.c

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ cairo_t *c;
1414
double get_dummy_scale(void) { return 1; }
1515

1616
const struct screen_info* noop_screen(void) {
17-
static struct screen_info i;
17+
static struct screen_info i = {0};
1818
return &i;
1919
}
2020

@@ -267,15 +267,18 @@ TEST test_layout_render_no_gaps(void)
267267
dim = calculate_dimensions(layouts);
268268
image_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 1, 1);
269269

270-
enum corner_pos corners = C_TOP | _C_FIRST;
270+
enum corner_pos corners = (settings.corners & C_TOP) | _C_FIRST;
271271
for (GSList *iter = layouts; iter; iter = iter->next) {
272+
272273
struct colored_layout *cl_this = iter->data;
273274
struct colored_layout *cl_next = iter->next ? iter->next->data : NULL;
274275

275-
if (!cl_next)
276-
corners |= C_BOT | _C_LAST;
277-
dim = layout_render(image_surface, cl_this, cl_next, dim, corners);
276+
if (settings.gap_size)
277+
corners = settings.corners;
278+
else if (!cl_next)
279+
corners |= (settings.corners & C_BOT) | _C_LAST;
278280

281+
dim = layout_render(image_surface, cl_this, cl_next, dim, corners);
279282
corners &= ~(C_TOP | _C_FIRST);
280283
}
281284

@@ -311,11 +314,19 @@ TEST test_layout_render_gaps(void)
311314
dim = calculate_dimensions(layouts);
312315
image_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 1, 1);
313316

317+
enum corner_pos corners = (settings.corners & C_TOP) | _C_FIRST;
314318
for (GSList *iter = layouts; iter; iter = iter->next) {
319+
315320
struct colored_layout *cl_this = iter->data;
316321
struct colored_layout *cl_next = iter->next ? iter->next->data : NULL;
317322

318-
dim = layout_render(image_surface, cl_this, cl_next, dim, C_ALL);
323+
if (settings.gap_size)
324+
corners = settings.corners;
325+
else if (!cl_next)
326+
corners |= (settings.corners & C_BOT) | _C_LAST;
327+
328+
dim = layout_render(image_surface, cl_this, cl_next, dim, corners);
329+
corners &= ~(C_TOP | _C_FIRST);
319330
}
320331

321332
expected_y = get_expected_dimension_y_offset(layout_count);
@@ -336,6 +347,10 @@ SUITE(suite_draw)
336347
cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 1, 1);
337348
c = cairo_create(s);
338349

350+
// XXX: This variable should not be accessed like this
351+
extern PangoContext *pango_ctx;
352+
pango_ctx = pango_cairo_create_context(c);
353+
339354
SHUFFLE_TESTS(time(NULL), {
340355
RUN_TEST(test_layout_from_notification);
341356
RUN_TEST(test_layout_from_notification_icon_off);

0 commit comments

Comments
 (0)