Tagging trunk at r29566 so that the revisionpm can later be synched to it.
[parrot.git] / languages / pipp / t / php / pcre.t
bloba4fa9b3281d446bdcbff27a5f6f4af7d330e4bf5
1 #! perl
2 # Copyright (C) 2008, The Perl Foundation.
3 # $Id$
5 =head1 NAME
7 t/php/pcre.t - Library pcre
9 =head1 SYNOPSIS
11     % perl -I../lib pipp/t/php/pcre.t
13 =head1 DESCRIPTION
15 Tests PHP Library pcre
16 (implemented in F<languages/pipp/src/common/php_pcre.pir>).
18 See L<http://www.php.net/manual/en/ref.pcre.php>.
20 =cut
22 use strict;
23 use warnings;
25 use FindBin;
26 use lib "$FindBin::Bin/../../lib";
28 use Test::More;
29 use Parrot::Test;
30 use Parrot::Config;
32 if ( $PConfig{HAS_PCRE} ) {
33     plan tests => 8;
35 else {
36     plan skip_all => "no PCRE";
40 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'constants' );
41 <?php
42   echo PREG_NO_ERROR, "\n";
43   echo PREG_INTERNAL_ERROR, "\n";
44   echo PREG_BACKTRACK_LIMIT_ERROR, "\n";
45   echo PREG_RECURSION_LIMIT_ERROR, "\n";
46   echo PREG_BAD_UTF8_ERROR, "\n";
48 CODE
54 OUTPUT
56 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'version' );
57 <?php
58   echo PCRE_VERSION;
60 CODE
61 /^\d\.\d/
62 OUTPUT
64 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'preg_match()' );
65 <?php
66   echo preg_match('/b/', 'abc'), "\n";
67   echo preg_match('/b/', 'aaa'), "\n";
68   echo preg_match('{b}', 'abc'), "\n";
69   echo preg_match('/b/i', 'ABC'), "\n";
71 CODE
76 OUTPUT
78 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'preg_match() empty regex' );
79 <?php
80   echo preg_match('   ', 'abc'), "\n";
82 CODE
83 /Empty regular expression/
84 OUTPUT
86 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'preg_match() bad delim' );
87 <?php
88   echo preg_match(' 7b7', 'abc'), "\n";
90 CODE
91 /Delimiter must not be alphanumeric or backslash/
92 OUTPUT
94 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'preg_match() no end' );
95 <?php
96   echo preg_match(' |b', 'abc'), "\n";
98 CODE
99 / No ending delimiter '|' found/
100 OUTPUT
102 language_output_like( 'Pipp', <<'CODE', <<'OUTPUT', 'preg_match() unknown modif' );
103 <?php
104   echo preg_match(' /b/ia', 'abc'), "\n";
106 CODE
107 /Unknown modifier 'a'/
108 OUTPUT
110 language_output_is( 'Pipp', <<'CODE', <<'OUTPUT', 'preg_quote()' );
111 <?php
112   echo preg_quote('{}[]()'), "\n";
114 CODE
115 \{\}\[\]\(\)
116 OUTPUT
118 # Local Variables:
119 #   mode: cperl
120 #   cperl-indent-level: 4
121 #   fill-column: 100
122 # End:
123 # vim: expandtab shiftwidth=4: