One Level Up
Top Level
test/util/reindex - ktap
Data types defined
Source code
- #!/usr/bin/env perl
- use strict;
- use warnings;
- use Getopt::Std;
- my %opts;
- getopts('hb:', \%opts);
- if ($opts{h} or ! @ARGV) {
- die "Usage: reindex [-b 0] t/*.t\n";
- }
- my $init = $opts{b};
- $init = 1 if not defined $init;
- my @files = map glob, @ARGV;
- for my $file (@files) {
- next if -d $file or $file !~ /\.t_?$/;
- reindex($file);
- }
- sub reindex {
- my $file = $_[0];
- open my $in, $file or
- die "Can't open $file for reading: $!";
- my @lines;
- my $counter = $init;
- my $changed;
- while (<$in>) {
- s/\r$//;
- my $num;
- s/ ^ === \s+ TEST \s+ (\d+)/$num=$1; "=== TEST " . $counter++/xie;
- next if !defined $num;
- if ($num != $counter-1) {
- $changed++;
- }
- } continue {
- push @lines, $_;
- }
- close $in;
- my $text = join '', @lines;
- $text =~ s/(?x) \n+ === \s+ TEST/\n\n\n\n=== TEST/ixsg;
- $text =~ s/__(DATA|END)__\n+=== TEST/__${1}__\n\n=== TEST/;
-
- if (! $changed and $text eq join '', @lines) {
- warn "reindex: $file:\tskipped.\n";
- return;
- }
- open my $out, "> $file" or
- die "Can't open $file for writing: $!";
- binmode $out;
- print $out $text;
- close $out;
- warn "reindex: $file:\tdone.\n";
- }
One Level Up
Top Level