#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Test::More tests=>1; use FindBin qw( $Bin ); use File::Copy; use File::Temp qw( tempdir ); # In make test or prove, STDOUT is piped. Vim doesn't like # this, so we're going to save the current output and pipe # STDOUT to where STDERR is currently going (Still to a terminal) SKIP: { my $version = `vim --version 2>&1`; if ($?) { skip "error calling vim - perhaps it isn't installed? '$!'", 1; } if ($version !~ /\+perl/) { skip "Looks like your vim isn't compiled with perl", 1; } my $tempdir = tempdir( 'perltagsXXXX', CLEANUP => 1 ); my $temp = "$tempdir/Test.pm"; copy( "$Bin/Test.pm", $temp ) or die "Couldn't copy $temp to $tempdir: $!"; local *OLD_OUT = *STDOUT; open STDOUT, '>&STDERR' or die "Can't open STDOUT as dup of STDERR: $!"; local $ENV{test_tempdir} = $tempdir; my $result = system vim => -u => 't/_vimrc', # use our vimrc to add Perl::Tags settings etc. -S => 't/session.vim', # use our session file to make modfications to file '-n', # don't use swapfile $temp; # restore STDOUT *STDOUT = *OLD_OUT; $result and skip "System call to vim failed: $!", 1; open (my $FH, '<', $temp) or die "Couldn't open $temp: $!"; local $/ = undef; my $modified = <$FH>; my $expected = ; is ($modified, $expected, "Got expected info after jumping around tags in vim"); } __DATA__ #!/usr/bin/perl # Test line here package Test; use strict; use warnings; use Data::Dumper; # foo line here # bar line here my ($foo, $bar); # wibble line here sub wibble { # blah } # TODO: test this line 1;