Lp 1768987: Use FindBin in 24-sql-gettext-unique.t.
[working/Evergreen.git] / Open-ILS / src / perlmods / t / 24-sql-gettext-unique.t
1 use strict;
2 use warnings;
3 use Test::More;
4 use Test::Output;
5 use FindBin;
6
7 my $num_tests = 0;
8
9 my $data;
10 {
11     open(my $fh, "<", "$FindBin::Bin/../../sql/Pg/950.data.seed-values.sql")
12         or die "Can't open 950.data.seed-values.sql: $!";
13     local $/ = undef;
14     $data = <$fh>;
15 }
16
17 my $findi18n = qr/oils_i18n_gettext\((.*?)\'\s*\)/;
18 my $intkey = qr/\s*(\d+)\s*,\s*E?\'(.+?)\',\s*\'(.+?)\',\s*\'(.+?)$/;
19 my $textkey = qr/\s*\'(.*?)\'\s*,\s*E?\'(.+?)\',\s*\'(.+?)\',\s*\'(.+?)$/;
20
21 my %found;
22 my @caps = $data =~ m/$findi18n/gms;
23 foreach my $cap (@caps) {
24     my $unique;
25     my @matches = $cap =~ m/$intkey/gms;
26     if (length($matches[0])) {
27         $unique = join('', $matches[0], $matches[2], $matches[3]);
28     } else {
29         @matches = $cap =~ m/$textkey/gms;
30         $unique = join('', $matches[0], $matches[2], $matches[3]);
31     }
32     isnt(exists($found{$unique}), 1, "oils_18n_gettext duplicate key: $cap'");
33     $found{"$unique"} = 1;
34     $num_tests++;
35     #print "$cap \n";
36 }
37  
38 done_testing($num_tests);