#!/usr/bin/perl use strict; use warnings; use Test::More qw(no_plan); my $pwd = `pwd`; chomp($pwd); my $testarbo = "$pwd/find-lang-root"; my %files = ( # file => [ lang, is_%dir ] '/usr/share/man/fr' => [ 'fr', 1 ], '/usr/share/man/fr/man1' => [ 'fr', 1 ], '/usr/share/man/fr/man1/lang.1.*' => [ 'fr', 0 ], '/usr/share/locale/pt_BR' => [ 'pt_BR', 1 ], '/usr/share/gnome/help/lang/pt_BR' => [ 'pt_BR', 1 ], '/usr/share/gnome/help/lang/pt_BR/any.html' => [ 'pt_BR', 0 ], '/usr/share/gnome/help/lang/en_GB' => [ 'en_GB', 1 ], '/usr/share/gnome/help/lang/en_GB/any.html' => [ 'en_GB', 0 ], '/usr/share/gnome/help/lang' => [ '', 1 ], '/usr/share/locale/pt_BR/LC_MESSAGES' => [ 'pt_BR', 1 ], '/usr/share/locale/pt_BR/LC_MESSAGES/lang.mo' => [ 'pt_BR', 0 ], ); system("/usr/bin/perl find-lang.pl $testarbo lang --with-man --with-gnome") and die "can't run find-lang $@"; open(my $h, '<', 'lang.lang') or die "can't open lang.lang"; while (my $line = <$h>) { chomp($line); $line =~ /svn/ and next; my ($file) = $line =~ / ([^ ]+)$/; my ($lang) = $line =~ /%lang\(([^\)]+)\)/; $lang ||= ''; my $dir = $line =~ /%dir/; $dir ||= 0; print STDERR "$file\n"; is($lang, $files{$file}[0], "lang is find"); is($dir, $files{$file}[1], "%dir is properly set if need"); }