From 5dceeb28d8743e71333bf346a26fe296d2e0fb5c Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@debian.org> Date: Mon, 18 Jan 2016 09:19:42 +0000 Subject: [PATCH] img test: skip testing PDFs if unsupported --- debian/changelog | 1 + doc/bugs/img_test_failure_on_nix.mdwn | 4 ++++ t/img.t | 29 +++++++++++++++++++++------ 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/debian/changelog b/debian/changelog index 90d6aa626..dc2fe2f06 100644 --- a/debian/changelog +++ b/debian/changelog @@ -36,6 +36,7 @@ ikiwiki (3.20150615) UNRELEASED; urgency=medium * d/control: Standards-Version: 3.9.6, no changes required * Silence "used only once: possible typo" warnings for variables that are part of modules' APIs + * img test: skip testing PDFs if unsupported -- Simon McVittie <smcv@debian.org> Mon, 15 Jun 2015 18:13:23 +0100 diff --git a/doc/bugs/img_test_failure_on_nix.mdwn b/doc/bugs/img_test_failure_on_nix.mdwn index 3b9e076d0..911cc66a1 100644 --- a/doc/bugs/img_test_failure_on_nix.mdwn +++ b/doc/bugs/img_test_failure_on_nix.mdwn @@ -27,3 +27,7 @@ Peter Simons wrote: >> >> If the result is `$VAR1 = [ undef ]`, then we can easily make the test skip that bit if PDFs don't work. >> --[[smcv]] + +>>> That configuration test doesn't actually work because of the way +>>> ImageMagick processes PDFs via ghostscript, but loading a sample +>>> PDF and probing its width does seem to work. [[done]] --[[smcv]] diff --git a/t/img.t b/t/img.t index 1f2e7d044..0fceebeb8 100755 --- a/t/img.t +++ b/t/img.t @@ -38,6 +38,9 @@ push @command, qw(--set usedirs=0 --plugin img t/tmp/in t/tmp/out --verbose); my $magick = new Image::Magick; my $SVGS_WORK = defined $magick->QueryFormat("svg"); +$magick->Read("t/img/twopages.pdf"); +my $PDFS_WORK = defined $magick->Get("width"); + ok(! system("rm -rf t/tmp; mkdir -p t/tmp/in")); ok(! system("cp t/img/redsquare.png t/tmp/in/redsquare.png")); @@ -60,6 +63,14 @@ if ($SVGS_WORK) { $maybe_svg_img = "[[!img emptysquare.svg size=10x]]"; } +my $maybe_pdf_img = ""; +if ($PDFS_WORK) { + $maybe_pdf_img = <<EOF; +[[!img twopages.pdf size=12x]] +[[!img twopages.pdf size=16x pagenumber=1]] +EOF +} + writefile("imgconversions.mdwn", "t/tmp/in", <<EOF [[!img redsquare.png]] [[!img redsquare.png size=10x]] @@ -68,8 +79,7 @@ writefile("imgconversions.mdwn", "t/tmp/in", <<EOF [[!img a:b:c.png size=x4]] [[!img a:b:c:d:e:f:g:h:i:j.png size=x6]] $maybe_svg_img -[[!img twopages.pdf size=12x]] -[[!img twopages.pdf size=16x pagenumber=1]] +$maybe_pdf_img EOF ); ok(utime(333333333, 333333333, "t/tmp/in/imgconversions.mdwn")); @@ -93,13 +103,20 @@ is(size("$outpath/10x-redsquare.png"), "10x10"); ok(! -e "$outpath/30x-redsquare.png"); ok($outhtml =~ /width="30" height="30".*expecting 30x30/); -if ($SVGS_WORK) { +SKIP: { + skip "SVG support not installed (try libmagickcore-extra)", 1 + unless $SVGS_WORK; # if this fails, you need libmagickcore-6.q16-2-extra installed - is(size("$outpath/10x-emptysquare.png"), "10x10"); + is(size("$outpath/10x-bluesquare.png"), "10x10"); +} + +SKIP: { + skip "PDF support not installed (try ghostscript)", 2 + unless $PDFS_WORK; + is(size("$outpath/12x-twopages.png"), "12x12"); + is(size("$outpath/16x-p1-twopages.png"), "16x2"); } -is(size("$outpath/12x-twopages.png"), "12x12"); -is(size("$outpath/16x-p1-twopages.png"), "16x2"); ok($outhtml =~ /width="8" height="8".*expecting 8x8/); is(size("$outpath/x8-hello:world.png"), "8x8"); is(size("$outpath/x4-a:b:c.png"), "4x4"); -- 2.39.5