php-src/ext/gd/tests/bug53156.phpt
Christoph M. Becker a375d54785
Migrate skip checks to --EXTENSIONS-- for ext/gd
Cf. PR #6787.

Closes GH-6994.
2021-05-22 15:38:51 +02:00

62 lines
1.5 KiB
PHP

--TEST--
Bug #53156 (imagerectangle problem with point ordering)
--EXTENSIONS--
gd
--SKIPIF--
<?php
if (!GD_BUNDLED && version_compare(GD_VERSION, '2.3', '<')) {
die("skip test requires GD 2.3 or newer");
}
?>
--FILE--
<?php
function draw_and_check_pixel($x, $y)
{
global $img, $black, $red;
echo (imagecolorat($img, $x, $y) === $black) ? '+' : '-';
imagesetpixel($img, $x, $y, $red);
}
function draw_and_check_rectangle($x1, $y1, $x2, $y2)
{
global $img, $black;
echo 'Rectangle: ';
imagerectangle($img, $x1, $y1, $x2, $y2, $black);
$x = ($x1 + $x2) / 2;
$y = ($y1 + $y2) / 2;
draw_and_check_pixel($x, $y1);
draw_and_check_pixel($x1, $y);
draw_and_check_pixel($x, $y2);
draw_and_check_pixel($x2, $y);
echo PHP_EOL;
}
$img = imagecreate(110, 210);
$bgnd = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
$red = imagecolorallocate($img, 255, 0, 0);
draw_and_check_rectangle( 10, 10, 50, 50);
draw_and_check_rectangle( 50, 60, 10, 100);
draw_and_check_rectangle( 50, 150, 10, 110);
draw_and_check_rectangle( 10, 200, 50, 160);
imagesetthickness($img, 4);
draw_and_check_rectangle( 60, 10, 100, 50);
draw_and_check_rectangle(100, 60, 60, 100);
draw_and_check_rectangle(100, 150, 60, 110);
draw_and_check_rectangle( 60, 200, 100, 160);
//imagepng($img, __DIR__ . '/bug53156.png'); // debug
?>
--EXPECT--
Rectangle: ++++
Rectangle: ++++
Rectangle: ++++
Rectangle: ++++
Rectangle: ++++
Rectangle: ++++
Rectangle: ++++
Rectangle: ++++