[TT# 1592][t] Improve test for open opcode delegation. All tests in the file pass...
[parrot.git] / t / tools / pgegrep.t
blob46f865ad2ac3fce14189cf27dc43b6f4017f0af1
1 #! perl
2 # Copyright (C) 2009, Parrot Foundation.
3 # $Id$
5 =head1 NAME
7 t/tools/pgegrep.t - test the script tools/utils/pgegrep
9 =head1 SYNOPSIS
11     % prove t/tools/pgegrep.t
13 =head1 DESCRIPTION
15 Tests the features of of the C<pgegrep> utility.
17 =cut
19 use strict;
20 use warnings;
21 use lib qw( . lib ../lib ../../lib );
23 use Fatal qw{open close};
24 use Test::More;
25 use Parrot::Test tests => 10;
26 use Parrot::Config;
27 use File::Spec   ();
29 my $testdata = File::Spec->catfile(qw{. t tools testdata });
30 my $testdata_escaped = $testdata;
31 $testdata_escaped =~ s!\\!\\\\!g;
33 sub pgegrep_output_like {
34     my ($options, $snippet, $desc)  = @_;
36     my $PARROT  = ".$PConfig{slash}$PConfig{test_prog}";
37     my $pgegrep = File::Spec->catfile( qw{. tools util pgegrep} );
38     my $out     = `$PARROT $pgegrep $options`;
40     like( $out, $snippet, $desc );
42     return;
45 pgegrep_output_like(
46     '-V',
47     qr!\Qpgegrep v0.0.1\E!,
48     'pge reports correct version'
51 pgegrep_output_like(
52     "cat $testdata",
53     qr!keyboardcat!,
54     'basic sanity of matching a literal'
57 pgegrep_output_like(
58     "-n cat $testdata",
59     qr!1:keyboardcat!,
60     'matching a literal with line number'
63 pgegrep_output_like(
64     "--line-number cat $testdata",
65     qr!1:keyboardcat!,
66     'matching a literal with line number with long option'
69 pgegrep_output_like(
70     "-H cat $testdata",
71     qr!$testdata_escaped:keyboardcat!,
72     'matching a literal with file name'
75 pgegrep_output_like(
76     "--with-filename cat $testdata",
77     qr!$testdata_escaped:keyboardcat!,
78     'matching a literal with file name with long option'
82 pgegrep_output_like(
83     "-v cat $testdata",
84     qr!saxophonegiraffe!,
85     'test inversion of match'
88 pgegrep_output_like(
89     "--invert-match cat $testdata",
90     qr!saxophonegiraffe!,
91     'test inversion of match with long option'
94 pgegrep_output_like(
95     "-l cat $testdata",
96     qr!$testdata_escaped!,
97     'find files that match'
100 pgegrep_output_like(
101     "--files-with-matches cat $testdata",
102     qr!$testdata_escaped!,
103     'find files that match with long option'
106 # Local Variables:
107 #   mode: cperl
108 #   cperl-indent-level: 4
109 #   fill-column: 100
110 # End:
111 # vim: expandtab shiftwidth=4: