Commit graph

2328 commits

Author SHA1 Message Date
Emmanuele Bassi
900b713af1 Merge branch 'ebassi/dithering' into 'master'
Enable access to the pixman dithering path

See merge request cairo/cairo!511
2023-09-23 11:49:49 +00:00
Uli Schlachter
ac1ac72ff1 tests: Add more dithering tests
Use operator add to add the same source over and over again, to make the
dithering more pronounced.
2023-09-23 12:15:27 +01:00
Emmanuele Bassi
6d2d6f312b Merge branch 'leak-bug-431' into 'master'
Fix leak in test/bug-431.c

See merge request cairo/cairo!513
2023-09-23 11:10:47 +00:00
Uli Schlachter
14ae7c7fd2 Fix leak in test/bug-431.c
This test creates surfaces and patterns that it never cleans up. Found via
running:

  CAIRO_TEST_TARGET=image valgrind --leak-check=full ./cairo-test-suite -f bug-431

Output before this commit:

==21310==
==21310== HEAP SUMMARY:
==21310==     in use at exit: 569,788 bytes in 26 blocks
==21310==   total heap usage: 1,523 allocs, 1,497 frees, 2,034,252 bytes allocated
==21310==
==21310== 336 bytes in 2 blocks are definitely lost in loss record 5 of 17
==21310==    at 0x48407B4: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==21310==    by 0x48BE2B0: _cairo_pattern_create_solid (cairo-pattern.c:614)
==21310==    by 0x48BE4B1: cairo_pattern_create_rgba (cairo-pattern.c:720)
==21310==    by 0x1358C6: draw (bug-431.c:50)
==21310==    by 0x129EDB: cairo_test_for_target (cairo-test.c:938)
==21310==    by 0x12B36A: _cairo_test_context_run_for_target (cairo-test.c:1545)
==21310==    by 0x12C370: _cairo_test_runner_draw (cairo-test-runner.c:258)
==21310==    by 0x12DEA0: main (cairo-test-runner.c:962)
==21310==
==21310== 278,534 (144 direct, 278,390 indirect) bytes in 1 blocks are definitely lost in loss record 15 of 17
==21310==    at 0x48407B4: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==21310==    by 0x48BE51E: cairo_pattern_create_for_surface (cairo-pattern.c:756)
==21310==    by 0x135838: draw (bug-431.c:41)
==21310==    by 0x129EDB: cairo_test_for_target (cairo-test.c:938)
==21310==    by 0x12B36A: _cairo_test_context_run_for_target (cairo-test.c:1545)
==21310==    by 0x12C370: _cairo_test_runner_draw (cairo-test-runner.c:258)
==21310==    by 0x12DEA0: main (cairo-test-runner.c:962)
==21310==
==21310== 278,534 (144 direct, 278,390 indirect) bytes in 1 blocks are definitely lost in loss record 16 of 17
==21310==    at 0x48407B4: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==21310==    by 0x48BE51E: cairo_pattern_create_for_surface (cairo-pattern.c:756)
==21310==    by 0x488274D: _cairo_default_context_set_source_surface (cairo-default-context.c:327)
==21310==    by 0x49063DB: cairo_set_source_surface (cairo.c:977)
==21310==    by 0x1AC1DD: _cairo_boilerplate_get_image_surface (cairo-boilerplate.c:337)
==21310==    by 0x12A486: cairo_test_for_target (cairo-test.c:1145)
==21310==    by 0x12B36A: _cairo_test_context_run_for_target (cairo-test.c:1545)
==21310==    by 0x12C370: _cairo_test_runner_draw (cairo-test-runner.c:258)
==21310==    by 0x12DEA0: main (cairo-test-runner.c:962)
==21310==
==21310== LEAK SUMMARY:
==21310==    definitely lost: 624 bytes in 4 blocks
==21310==    indirectly lost: 556,780 bytes in 16 blocks
==21310==      possibly lost: 0 bytes in 0 blocks
==21310==    still reachable: 12,384 bytes in 6 blocks
==21310==         suppressed: 0 bytes in 0 blocks
==21310== Reachable blocks (those to which a pointer was found) are not shown.
==21310== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==21310==
==21310== For lists of detected and suppressed errors, rerun with: -s
==21310== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2023-09-17 12:26:19 +02:00
Uli Schlachter
7bf743a92f Fix font options leak in scaled font
A scaled font contains font options. Since commit 67eeed44, this can
contain an extra allocation for a custom palette. Since commit
edf9497c3a, this contains an extra allocation for a string. Before these
commit, font options could just be dropped, but now they need to be
freed.

This commit makes the relevant code for creating and finishing scaled
fonts also clean up the font options.

The test added in the previous commit also hits this bug (I only found
these leaks accidentially!). Running "valgrind --leak-check=full
./cairo-test-suite -f leaks-set-scaled-font" no longer reports the following
after this change:

 40 bytes in 1 blocks are definitely lost in loss record 1 of 11
    at 0x48407B4: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x4886C62: _cairo_font_options_init_copy (cairo-font-options.c:105)
    by 0x48DAFFB: _cairo_scaled_font_init_key (cairo-scaled-font.c:675)
    by 0x48DC077: cairo_scaled_font_create (cairo-scaled-font.c:1096)
    by 0x15BF08: leaks_set_scaled_font (leaks.c:43)
    by 0x129EF0: cairo_test_for_target (cairo-test.c:938)
    by 0x12B37F: _cairo_test_context_run_for_target (cairo-test.c:1545)
    by 0x12C385: _cairo_test_runner_draw (cairo-test-runner.c:258)
    by 0x12DEB5: main (cairo-test-runner.c:962)

 40 bytes in 1 blocks are definitely lost in loss record 2 of 11
    at 0x48407B4: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x4886C62: _cairo_font_options_init_copy (cairo-font-options.c:105)
    by 0x49337BB: _cairo_ft_font_face_scaled_font_create (cairo-ft-font.c:2073)
    by 0x48DC340: cairo_scaled_font_create (cairo-scaled-font.c:1176)
    by 0x15BF08: leaks_set_scaled_font (leaks.c:43)
    by 0x129EF0: cairo_test_for_target (cairo-test.c:938)
    by 0x12B37F: _cairo_test_context_run_for_target (cairo-test.c:1545)
    by 0x12C385: _cairo_test_runner_draw (cairo-test-runner.c:258)
    by 0x12DEB5: main (cairo-test-runner.c:962)

 40 bytes in 1 blocks are definitely lost in loss record 3 of 11
    at 0x48407B4: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x4886C62: _cairo_font_options_init_copy (cairo-font-options.c:105)
    by 0x48DB280: _cairo_scaled_font_init (cairo-scaled-font.c:742)
    by 0x4933804: _cairo_ft_font_face_scaled_font_create (cairo-ft-font.c:2076)
    by 0x48DC340: cairo_scaled_font_create (cairo-scaled-font.c:1176)
    by 0x15BF08: leaks_set_scaled_font (leaks.c:43)
    by 0x129EF0: cairo_test_for_target (cairo-test.c:938)
    by 0x12B37F: _cairo_test_context_run_for_target (cairo-test.c:1545)
    by 0x12C385: _cairo_test_runner_draw (cairo-test-runner.c:258)
    by 0x12DEB5: main (cairo-test-runner.c:962)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2023-09-17 09:32:10 +02:00
Uli Schlachter
9529d02f6a Fix font options leak in gstate
cairo_gstate_t contains a cairo_font_options_t. Since commit 67eeed44,
this can contain an extra allocation for a custom palette. Since commit
edf9497c3a, this contains an extra allocation for a string. Before these
commit, font options could just be dropped, but now they need to be
freed.

This commit makes _cairo_gstate_fini() finish the font options to free
the memory allocation.

The new test was run via "valgrind --leak-check=full ./cairo-test-suite
-f leaks-set-scaled-font". The following reported leak goes away thanks
to this commit:

 1,040 bytes in 26 blocks are definitely lost in loss record 6 of 12
    at 0x48407B4: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
    by 0x4886C62: _cairo_font_options_init_copy (cairo-font-options.c:105)
    by 0x488C029: _cairo_gstate_set_font_options (cairo-gstate.c:1757)
    by 0x48841D7: _cairo_default_context_set_scaled_font (cairo-default-context.c:1310)
    by 0x490809A: cairo_set_scaled_font (cairo.c:3318)
    by 0x15BF1F: leaks_set_scaled_font (leaks.c:45)
    by 0x129EF0: cairo_test_for_target (cairo-test.c:938)
    by 0x12B37F: _cairo_test_context_run_for_target (cairo-test.c:1545)
    by 0x12C385: _cairo_test_runner_draw (cairo-test-runner.c:258)
    by 0x12DEB5: main (cairo-test-runner.c:962)

Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/795
Signed-off-by: Uli Schlachter <psychon@znc.in>
2023-09-17 09:22:29 +02:00
Marc Jeanmougin
e6ab85712c Enable access to the pixman dithering path
Newer versions of Pixman allow choosing the dithering format.
2023-09-07 15:42:21 +01:00
Sebastian Dröge
baf2593852 Hurd has no MAP_NORESERVE so don't use it there 2023-07-02 10:19:06 -04:00
Adrian Johnson
c381a773de Update CI to Fedora 38 2023-06-05 22:04:33 +09:30
Adrian Johnson
b53b48116e Make cairo_tag_begin/end work correctly in groups
Fixes #508
2023-04-18 18:27:12 +09:30
Taylor R Campbell
b1ccd52183 Avoid misuse of ctype(3) functions
The ctype(3) character classification and mapping functions have a
peculiarly limited definition (C11, Sec. 7.4 `Character handling
<ctype.h>', p. 200):

	`The header <ctype.h> declares several functions useful for
	 classifying and mapping characters.  In all cases the
	 argument is an int, the value of which shall be
	 representable as an unsigned char or shall equal the value
	 of the macro EOF.  If the argument has any other value, the
	 behavior is undefined.'

In other words, in the most common case of 8-bit char and EOF = -1,
the domain of the 257 allowed arguments is:

	-1, 0, 1, 2, ..., 254, 255

The ctype(3) functions are designed for use with stdio functions like
getchar and fgetc which return int values in the same domain.

In an ABI where char is signed (e.g., x86 SysV ABI used by most
Unixish operating systems), passing an argument of type char as is
can go wrong in two ways:

1. The value of a non-EOF input octet interpreted as `char' may
   coincide, as an integer, with the value of EOF, leading to wrong
   answers for some non-EOF inputs.

   E.g., if EOF = 1, and an input octet has all bits set, i.e., 255
   as an unsigned char, then as a char the value is -1, which will be
   confused with EOF.  In the ISO-8859-1 locale, the code point 255
   is (in Unicode terminology) LATIN SMALL LETTER Y WITH DIAERESIS,
   for which isprint, isalpha, &c., are true.  But isprint, isalpha,
   &c., are false for EOF.  So if char *s points to a string with
   that character, isprint(*s) will return false when it should
   return true.

2. Passing a negative char whose value does not coincide with EOF is
   undefined behaviour.

   This isn't purely theoretical: often the functions are implemented
   by an array lookup, #define isprint(c) (ctypetab[c] & ISPRINT).
   If c is out of range (e.g., 192, ISO-8859-1 for LATIN CAPITAL
   LETTER A WITH GRAVE, which convers to (signed) char as -64), then
   you can get garbage answers by reading uninitialized memory or
   application crashes with SIGSEGV if the page preceding the table
   is unmapped.

If what you have is an arbitrary char (e.g., from a char * string
pointing at user input), then the only correct way to use the
ctype(3) functions is by converting to unsigned char first -- e.g.,
isprint((unsigned char)*s).  (If the functions were defined as macros
that convert to unsigned char first, they would then spuriously
interpret EOF as a non-EOF, so they can't do that themselves.)

It is possible, in some cases, to prove that the input always
actually lies in {0, 1, 2, ..., 127}, so the conversion to unsigned
char is not necessary.  I didn't check whether this was the case --
it's safer to just adopt the habit of always casting char to unsigned
char first before using the ctype(3) macros, which satisfies a
compiler warning on some systems designed to detect this class of
application errors at compile-time.
2023-03-29 09:04:46 +00:00
John Ralls
e5ed09a1ab [quartz] Replace surface-pattern xfail with latest CI fail image. 2023-02-14 11:53:02 -08:00
Khaled Hosny
59c195dc82 Fix -Wlogical-not-parentheses
The code is doing "if (!double_buf_equal () != 0)" which seems to be a
convoluted way to do "if (!double_buf_equal ())". Fixes:

../test/pattern-getters.c:153:6: warning: logical not is only applied to the left hand side of this comparison [-Wlogical-not-parentheses]
        if (!double_buf_equal (ctx, new_buf, expected_values,
            ^
../test/pattern-getters.c:153:6: note: add parentheses after the '!' to evaluate the comparison first
        if (!double_buf_equal (ctx, new_buf, expected_values,
            ^
             (
../test/pattern-getters.c:153:6: note: add parentheses around left hand side expression to silence this warning
        if (!double_buf_equal (ctx, new_buf, expected_values,
            ^
            (
2023-02-06 11:39:08 +02:00
Khaled Hosny
7980301fe4 Remove dead code
This is no-op as the functions always return TRUE and the code is never
executed.
2023-02-04 10:59:41 +02:00
Khaled Hosny
c1564baf61 Fix -Wunused-but-set-parameter
../test/cairo-test-runner.c:730:48: warning: parameter 'str' set but not used [-Wunused-but-set-parameter]
_has_required_ghostscript_version (const char *str)
2023-02-04 10:58:13 +02:00
Adrian Johnson
00453e9a7d Merge branch 'pdf-color-fonts' into 'master'
PDF Type 3 color fonts

See merge request cairo/cairo!434
2023-02-02 10:58:52 +00:00
Adrian Johnson
9d85055bb2 meson: Replace existing link if it already exists
Fixes #631
2023-02-01 20:10:33 +10:30
Adrian Johnson
79501baaa1 PDF Type 3 color fonts
This implements Type 3 color fonts for PDF for any font with a
CAIRO_SCALED_GLYPH_INFO_RECORDING_SURFACE. This includes user-fonts,
SVG fonts, and COLR fonts.

Glyphs with foreground colors are not yet implemented as Type 3 glyphs
and will be rendered as images by cairo-surface.
2023-01-29 18:08:42 +10:30
Emmanuele Bassi
47a932bffc Merge branch 'no-more-gl' into 'master'
Drop cairo-gl

See merge request cairo/cairo!287
2023-01-29 01:32:55 +00:00
Emmanuele Bassi
b5793081d0 Drop cairo-gl
The GL support in Cairo has always been a prototype, and
nothing happened in the past 10+ years to make it work as
it was meant to.

GL support is not enabled by any downstream packagers of
Cairo, so nobody should notice its absence.
2023-01-27 19:21:46 +00:00
Adrian Johnson
9e59808ecb svg: test foreground colors
Convert the ft-svg-render-palette test to a color test that test
both palettes and foreground colors.
2023-01-27 20:22:18 +10:30
Adrian Johnson
c8695f0503 Foreground color fixes for ft, svg, colrv1 2023-01-27 20:22:18 +10:30
Adrian Johnson
f35f757e8f Update user font tests to test foreground colors 2023-01-26 19:49:06 +10:30
Adrian Johnson
b68583ee54 Add test for SVG font palettes 2023-01-21 17:46:18 +10:30
Adrian Johnson
745c3717aa Merge branch 'fix-shared-recording-surface' into 'master'
Fix shared use of recording surfaces

See merge request cairo/cairo!391
2023-01-16 08:59:32 +00:00
Adrian Johnson
6abc8076c9 Merge branch 'meson-and-doc-fixes' into 'master'
Meson and documentation fixes

See merge request cairo/cairo!406
2023-01-16 08:57:45 +00:00
Adrian Johnson
a2b376ed78 pdf-tagged-text depends on PDF 2023-01-15 19:29:28 +10:30
Adrian Johnson
c9187c529e Add a test that demonstrates a recording surface bug when re-used on different surfaces
There is a bug in the recording surface where if one recording surface
is used as the same source on different paginated targets that support
fine grained fallbacks, the output may be incorrect because the
analysis results of a previous target are re-used on another target.
2023-01-15 19:29:28 +10:30
Adrian Johnson
d5e8a8c02e We don't use HAVE_CONFIG_H anymore 2023-01-15 19:00:22 +10:30
Adrian Johnson
bdbc10077e README fixes 2023-01-15 19:00:22 +10:30
Manuel Stoeckl
39f8be09f8 Add test for loading 16 bit PNG images
The base image has 16 bits per channel, with colors that do not
have an exact corresponding 8 bit representation. The reference
image uses 8bpc, like the rgb24/argb32 formatted images which
the test outputs.
2023-01-11 06:39:23 -05:00
Adrian Johnson
c756836dbe Rename INSTALL.meson and README.meson 2023-01-08 22:28:29 +10:30
Adrian Johnson
efe303d9db Remove autotools build 2023-01-08 22:27:47 +10:30
Adrian Johnson
ca0f8ffd84 Merge branch 'foreground-color-in-group' into 'master'
User-fonts fails when foreground color used inside a group

See merge request cairo/cairo!380
2023-01-03 07:45:35 +00:00
Adrian Johnson
f0ce8658f9 Fix user-font with foreground in group failures on image, PDF, and PS 2023-01-03 17:37:36 +10:30
Adrian Johnson
7f83c30943 Merge branch 'test-readme' into 'master'
Add README.meson file for meson test

See merge request cairo/cairo!385
2023-01-02 10:54:17 +00:00
Adrian Johnson
39081b0c40 Add README.meson file for meson test 2023-01-02 20:46:39 +10:30
Uli Schlachter
3cc15cb40e Merge branch 'duplicate-ref-images' into 'master'
Remove duplicate reference images & run check-refs.sh in CI to ensure that no new duplicate images are added

See merge request cairo/cairo!384
2023-01-02 09:04:16 +00:00
Adrian Johnson
c51b5e8021 Copy completion.bash to $builddir/test 2023-01-01 16:27:02 +10:30
Adrian Johnson
513c49e623 user-font-color test: draw glyphs again inside a group
This demonstrates a bug in user-fonts with foreground color inside a
group.
2023-01-01 14:00:00 +10:30
Uli Schlachter
52e964da69 Merge branch 'speed-up-coverage-column-triangles' into 'master'
Speed up coverage-column-triangles test

Closes #498

See merge request cairo/cairo!379
2022-12-31 17:30:29 +00:00
Uli Schlachter
7de261b0b1 Merge branch 'script-bug-277' into 'master'
script: Implement device finish

Closes #277

See merge request cairo/cairo!292
2022-12-31 15:13:59 +00:00
Uli Schlachter
997870601b Run check-refs.sh in CI
The check-refs.sh script detects duplicate reference images. This commit
adds it to be run by CI. For this, the script is extended with a proper
exit code.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2022-12-31 16:05:27 +01:00
Uli Schlachter
d546a78c6f Remove duplicate reference images
Running test/check-refs.sh reports:

redundant: arc-direction.pdf.ref.png and arc-direction.ref.png are byte-by-byte identical files
redundant: big-little-triangle.traps.argb32.ref.png and big-little-triangle.argb32.ref.png are byte-by-byte identical files
redundant: big-little-triangle.traps.rgb24.ref.png and big-little-triangle.rgb24.ref.png are byte-by-byte identical files
redundant: clip-fill-rule.pdf.rgb24.ref.png and clip-fill-rule.rgb24.ref.png are byte-by-byte identical files
redundant: dash-offset-negative.pdf.ref.png and dash-offset-negative.ref.png are byte-by-byte identical files
redundant: font-matrix-translation.traps.ref.png and font-matrix-translation.ref.png are byte-by-byte identical files
redundant: ft-show-glyphs-positioning.traps.ref.png and ft-show-glyphs-positioning.ref.png are byte-by-byte identical files
redundant: ft-show-glyphs-table.traps.ref.png and ft-show-glyphs-table.ref.png are byte-by-byte identical files
redundant: glyph-cache-pressure.traps.ref.png and glyph-cache-pressure.ref.png are byte-by-byte identical files
redundant: inverse-text.traps.ref.png and inverse-text.ref.png are byte-by-byte identical files
redundant: line-width-large-overlap-offset.ps.ref.png and line-width-large-overlap-offset.ref.png are byte-by-byte identical files
redundant: partial-clip-text-right.traps.ref.png and partial-clip-text-right.ref.png are byte-by-byte identical files
redundant: partial-clip-text-top.traps.ref.png and partial-clip-text-top.ref.png are byte-by-byte identical files
redundant: record90-fill-alpha.pdf.ref.png and record90-fill-alpha.ref.png are byte-by-byte identical files
redundant: record90-paint-alpha-clip.quartz.ref.png and record90-paint-alpha-clip.ref.png are byte-by-byte identical files
redundant: record-fill-alpha.pdf.ref.png and record-fill-alpha.ref.png are byte-by-byte identical files
redundant: recordflip-whole-fill-alpha.quartz.ref.png and recordflip-whole-fill-alpha.ref.png are byte-by-byte identical files
redundant: recordflip-whole-paint-alpha-clip-mask.quartz.ref.png and recordflip-whole-paint-alpha-clip-mask.ref.png are byte-by-byte identical files
redundant: record-mesh.ps.ref.png and record-mesh.ref.png are byte-by-byte identical files
redundant: select-font-face.traps.ref.png and select-font-face.ref.png are byte-by-byte identical files
redundant: show-glyphs-advance.traps.ref.png and show-glyphs-advance.ref.png are byte-by-byte identical files
redundant: show-text-current-point.traps.ref.png and show-text-current-point.ref.png are byte-by-byte identical files
redundant: text-antialias-gray.traps.ref.png and text-antialias-gray.ref.png are byte-by-byte identical files

This commit removes these redundant files.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2022-12-31 15:56:33 +01:00
Adrian Johnson
3a60f6e138 Merge branch 'ft-svg-fonts' into 'master'
Support SVG fonts in FT backend

See merge request cairo/cairo!319
2022-12-31 09:27:57 +00:00
Uli Schlachter
8d74c4d019 Speed up coverage-column-triangles test
This commit changes the height of the coverage-column-triangles test by
using a smaller height for the test. Previously the image was 40 pixels
in height and the test took 517 seconds for me. Now, the image has a
height of 4 pixels and the test takes 55 seconds.

This is possible since column_triangles() does the same thing for each y
coordinate. Thus, previously this test just did the same thing 40 times.

Times are measured with the backends I happened to have enabled locally:
script, xcb, xlib, image, recording.

Thanks a lot to Christian Rohlfs for coming up with this idea in
https://gitlab.freedesktop.org/cairo/cairo/-/issues/498#note_1700197

Possibly-fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/498
Signed-off-by: Uli Schlachter <psychon@znc.in>
2022-12-30 16:36:22 +01:00
Uli Schlachter
35f2610f4d coverage.c: Use width/height arguments
The tests in coverage.c have #defines for WIDTH and HEIGHT, but also
have function arguments for these numbers. This commit changes the tests
to use the function arguments instead of the defines.

One complication is the rhombus test that already had a factor 2 between
these two numbers. A new variable is added to get back the previous
value.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2022-12-30 09:29:10 +01:00
Uli Schlachter
4913f07950 Merge branch 'round-join' into 'master'
Remove `round-join-bug-520*` CI exceptions for Quartz backend

See merge request cairo/cairo!377
2022-12-29 12:37:01 +00:00
Christian Rohlfs
aa8d16ab83 Removed round-join-bug-520* CI exceptions for Quartz backend
Removed lines from `.gitlab-ci/ignore-quartz*`;
Added `round-join-bug-520-bevel.quartz.ref.png` file.
2022-12-28 17:50:27 +05:00
Uli Schlachter
c1aaaff880 Test cairo-ps in CI
This adds the necessary dependencies for testing cairo-ps to CI and sets
up jobs for testing the ps2 and ps3 backends.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2022-12-28 11:14:59 +01:00