This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Refactor ReTest.pl to use test.pl for testing functions and TAP generation.
[perl5.git] / t / re / ReTest.pl
1 #!./perl
2 #
3 # This is the test subs used for regex testing. 
4 # This used to be part of re/pat.t
5 use warnings;
6 use strict;
7 use 5.010;
8 use base qw/Exporter/;
9 use Carp;
10 use vars qw(
11     $IS_ASCII
12     $IS_EBCDIC
13     $ordA
14 );
15
16 $| = 1;
17
18 our $ordA = ord ('A');  # This defines ASCII/UTF-8 vs EBCDIC/UTF-EBCDIC
19 # This defined the platform.
20 our $IS_ASCII  = $ordA ==  65;
21 our $IS_EBCDIC = $ordA == 193;
22
23 use vars '%Config';
24 eval 'use Config';          #  Defaults assumed if this fails
25
26 require './test.pl';
27
28 *iseq = \&is;
29
30 sub nok ($;$$) {
31     my $bool = shift;
32     ok(!$bool, @_);
33 }
34
35 sub eval_ok ($;$) {
36     my ($code, $name) = @_;
37     local $@;
38     if (ref $code) {
39         ok(eval {&$code} && !$@, $name);
40     }
41     else {
42         ok(eval  ($code) && !$@, $name);
43     }
44 }
45
46 sub must_die {
47     my ($code, $pattern, $name) = @_;
48     Carp::confess("Bad pattern") unless $pattern;
49     undef $@;
50     ref $code ? &$code : eval $code;
51     like($@, $pattern, $name // "\$\@ =~ /$pattern/");
52 }
53
54 sub must_warn {
55     my ($code, $pattern, $name) = @_;
56     Carp::confess("Bad pattern") unless $pattern;
57     my $w;
58     local $SIG {__WARN__} = sub {$w .= join "" => @_};
59     use warnings 'all';
60     ref $code ? &$code : eval $code;
61     like($w, qr/$pattern/, "Got warning /$pattern/");
62 }
63
64 sub may_not_warn {
65     my ($code, $name) = @_;
66     my $w;
67     local $SIG {__WARN__} = sub {$w .= join "" => @_};
68     use warnings 'all';
69     ref $code ? &$code : eval $code;
70     is($w, undef, $name) or diag("Got warning '$w'");
71 }
72
73 1;