-#!/usr/bin/env perl -T
-use strict;
-use Test::More;
-
-BEGIN {
- eval {
- require Taint::Util;
- Taint::Util->import;
- };
-
- plan $@
- ? (skip_all => "Taint::Util required for taint tests")
- : (tests => 8);
-}
-
-use re::engine::Plugin (
- exec => sub {
- my ($re, $str) = @_;
-
- ok(tainted($str) => 'matched string tainted');
-
- my $one = $str;
- my $two = $str; untaint($two);
-
- ok(tainted($one));
- ok(!tainted($two));
-
- $re->num_captures(
- FETCH => sub {
- my ($re, $p) = @_;
-
- return $one if $p == 1;
- return $two if $p == 2;
- },
- );
-
- 1;
- }
-);
-
-my $str = "string";
-taint($str);
-ok(tainted($str));
-
-if ($str =~ /pattern/) {
- cmp_ok $1, 'eq', $str;
- ok(tainted($1) => '$1 is tainted');
-
- cmp_ok $2, 'eq', $str;
- ok(!tainted($2) => '$2 is untainted');
-}