commit b3c321445f43b0011f3b1e8a8110896fe74c1dac
parent 2b10b7d8747418ed0f97427d047167b4dc0012e6
Author: Kyle Milz <kyle@0x30.net>
Date: Sun, 8 Jan 2017 05:04:04 -0700
t: add new off screen rendering test for citrun_gl
Diffstat:
2 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/t/gl_basic.t b/t/gl_basic.t
@@ -0,0 +1,38 @@
+#
+# Check that opening the viewer after an instrumented program has exited gives
+# an identical output to known good.
+#
+use strict;
+use warnings;
+use File::Compare;
+use Imager;
+use t::utils;
+plan tests => 6;
+
+my $dir = setup_projdir();
+
+$ENV{CITRUN_PROCDIR} = $dir->workdir . "/procdir/";
+$dir->run( prog => $dir->workdir . "/program", args => '1', chdir => $dir->curdir );
+is( $dir->stdout, '1', 'is instrumented program stdout correct' );
+is( $dir->stderr, '', 'is instrumented program stderr silent' );
+
+my $render_file = File::Spec->catdir( $dir->workdir, 'test.tga' );
+my $render_good_file = File::Spec->catfile( 't', 'gl_basic.tga' );
+
+$dir->run( prog => 'citrun_gltest', args => "$render_file 800 600", workdir => '' );
+print $dir->stdout;
+is( $dir->stderr, '', 'is citrun_gltest stderr silent' );
+
+if (compare( $render_file, $render_good_file ) == 0) {
+ pass( 'is render file identical' );
+}
+else {
+ my $render = Imager->new( file => $render_file ) or die Imager->errstr();
+ my $render_good = Imager->new( file => 't/gl_basic.tga' ) or die Imager->errstr();
+
+ my $diff = $render->difference( other => $render_good );
+ $diff->write( file => $dir->workdir . "/diff.tga" ) or die Imager->errstr;
+
+ system("imlib2_view " . $dir->workdir . "/diff.tga" );
+ fail( 'is render file identical' );
+}
diff --git a/t/gl_basic.tga b/t/gl_basic.tga
Binary files differ.