From: Tony Cook Date: Mon, 29 Oct 2007 09:37:22 +0000 (+0000) Subject: the code for the transform2() uminus operator was missing a break. X-Git-Tag: Imager-0.61~12 X-Git-Url: http://git.imager.perl.org/imager.git/commitdiff_plain/3f29de50ea8ced21c1feffb11668b649f13fabe3 the code for the transform2() uminus operator was missing a break. Added tests for better code coverage of the ops. http://rt.cpan.org/Ticket/Display.html?id=29296 --- diff --git a/Changes b/Changes index 144d375d..b7735d7f 100644 --- a/Changes +++ b/Changes @@ -29,6 +29,10 @@ Bug fixes: use long double. http://rt.cpan.org/Ticket/Display.html?id=29413 + - the code for the transform2() uminus operator was missing a break. + Added tests for better code coverage of the ops. + http://rt.cpan.org/Ticket/Display.html?id=29296 + Imager 0.60 - 30 August 2007 =========== diff --git a/regmach.c b/regmach.c index 1659a530..02ea5e3c 100644 --- a/regmach.c +++ b/regmach.c @@ -216,6 +216,7 @@ i_color i_rm_run(struct rm_op codes[], size_t code_count, case rbc_uminus: nout = -na; + break; case rbc_multp: cout = make_rgb(ca.rgb.r * nb, ca.rgb.g * nb, ca.rgb.b * nb, 255); diff --git a/t/t58trans2.t b/t/t58trans2.t index 3c29d41b..39f7f7ee 100644 --- a/t/t58trans2.t +++ b/t/t58trans2.t @@ -1,7 +1,8 @@ #!perl -w use strict; -use Test::More tests => 16; +use Test::More tests => 36; BEGIN { use_ok('Imager'); } +use Imager::Test qw(is_color3); Imager::init('log'=>'testout/t58trans2.log'); @@ -72,6 +73,68 @@ if ($im9) { $im9->write(type=>'pnm', file=>'testout/t56-9.ppm'); } +# op tests +sub op_test($$$$$$); +print "# op tests\n"; +op_test('7F0000', <'x y getp2', width=>100, height=>100}); ok(!$im7, "expected failure on accessing invalid image"); print "# ", Imager->errstr, "\n"; ok(Imager->errstr =~ /not enough images/, "didn't get expected error"); + +sub op_test ($$$$$$) { + my ($in_color, $code, $r, $g, $b, $comment) = @_; + + my $im = Imager->new(xsize => 1, ysize => 1); + $im->setpixel(x => 0, y => 0, color => $in_color); + SKIP: + { + my $out = Imager::transform2({ rpnexpr => $code }, $im); + unless ($out) { + fail("$comment: coult not compile $code - ".Imager->errstr); + return; + } + my $found = $out->getpixel(x => 0, y => 0); + is_color3($found, $r, $g, $b, $comment); + } +}