# HG changeset patch # User Sergey Kandaurov # Date 1400786048 -14400 # Node ID 2711722a85c32aa9e35ee165d4b33d981928aa64 # Parent 811fbc213fd8e36f3c8197bd48a249d61f01ee45 Tests: added safety measure for old libgd versions. diff --git a/image_filter.t b/image_filter.t --- a/image_filter.t +++ b/image_filter.t @@ -211,9 +211,14 @@ is(gif_size('/rotate_var/gif?r=270'), '1 is($im->interlaced, 0, 'gif interlaced off'); is($im->transparent, 0, 'gif transparent white'); +SKIP: { +skip 'broken libgd', 1 unless has_gdversion('2.1.0') or $ENV{TEST_NGINX_UNSAFE}; + $im = GD::Image->newFromGifData(http_get_body('/interlaced/gif')); is($im->interlaced, 1, 'gif interlaced on'); +} + $im = GD::Image->newFromGifData(http_get_body('/nontransparent/gif')); is($im->transparent, -1, 'gif transparent loss'); @@ -271,6 +276,22 @@ sub http_get_body { return $2; } +sub has_gdversion { + my ($need) = @_; + + my $v_str = `gdlib-config --version 2>&1` or return; + my @v = split(/\./, $v_str); + my ($n, $v); + + for $n (split(/\./, $need)) { + $v = shift @v || 0; + return 0 if $n > $v; + return 1 if $v > $n; + } + + return 1; +} + ############################################################################### # serve static files without Content-Length