changeset 407:2711722a85c3

Tests: added safety measure for old libgd versions.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 22 May 2014 23:14:08 +0400
parents 811fbc213fd8
children 82b15c81978e
files image_filter.t
diffstat 1 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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