citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

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:
At/gl_basic.t | 38++++++++++++++++++++++++++++++++++++++
At/gl_basic.tga | 0
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.