 2179b6727e
			
		
	
	2179b6727e
	
	
	
		
			
			These scripts are not run directly as part of a normal build, so no one noticed that they did not have the +x bit. Mark them executable to make it more obvious that they can be run directly (when debugging, for example). Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			111 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl
 | |
| use 5.008;
 | |
| use lib (split(/:/, $ENV{GITPERLLIB}));
 | |
| use strict;
 | |
| use warnings;
 | |
| use POSIX qw(:locale_h);
 | |
| use Test::More tests => 8;
 | |
| use Git::I18N;
 | |
| 
 | |
| my $has_gettext_library = $Git::I18N::__HAS_LIBRARY;
 | |
| 
 | |
| ok(1, "Testing Git::I18N with " .
 | |
| 	 ($has_gettext_library
 | |
| 	  ? (defined $Locale::Messages::VERSION
 | |
| 		 ? "Locale::Messages version $Locale::Messages::VERSION"
 | |
| 		 # Versions of Locale::Messages before 1.17 didn't have a
 | |
| 		 # $VERSION variable.
 | |
| 		 : "Locale::Messages version <1.17")
 | |
| 	  : "NO Perl gettext library"));
 | |
| ok(1, "Git::I18N is located at $INC{'Git/I18N.pm'}");
 | |
| 
 | |
| {
 | |
| 	my $exports = @Git::I18N::EXPORT;
 | |
| 	ok($exports, "sanity: Git::I18N has $exports export(s)");
 | |
| }
 | |
| is_deeply(\@Git::I18N::EXPORT, \@Git::I18N::EXPORT_OK, "sanity: Git::I18N exports everything by default");
 | |
| 
 | |
| # prototypes
 | |
| {
 | |
| 	# Add prototypes here when modifying the public interface to add
 | |
| 	# more gettext wrapper functions.
 | |
| 	my %prototypes = (qw(
 | |
| 		__	$
 | |
| 	));
 | |
| 	while (my ($sub, $proto) = each %prototypes) {
 | |
| 		is(prototype(\&{"Git::I18N::$sub"}), $proto, "sanity: $sub has a $proto prototype");
 | |
| 	}
 | |
| }
 | |
| 
 | |
| # Test basic passthrough in the C locale
 | |
| {
 | |
| 	local $ENV{LANGUAGE} = 'C';
 | |
| 	local $ENV{LC_ALL}   = 'C';
 | |
| 	local $ENV{LANG}     = 'C';
 | |
| 
 | |
| 	my ($got, $expect) = (('TEST: A Perl test string') x 2);
 | |
| 
 | |
| 	is(__($got), $expect, "Passing a string through __() in the C locale works");
 | |
| }
 | |
| 
 | |
| # Test a basic message on different locales
 | |
| SKIP: {
 | |
| 	unless ($ENV{GETTEXT_LOCALE}) {
 | |
| 		# Can't reliably test __() with a non-C locales because the
 | |
| 		# required locales may not be installed on the system.
 | |
| 		#
 | |
| 		# We test for these anyway as part of the shell
 | |
| 		# tests. Skipping these here will eliminate failures on odd
 | |
| 		# platforms with incomplete locale data.
 | |
| 
 | |
| 		skip "GETTEXT_LOCALE must be set by lib-gettext.sh for exhaustive Git::I18N tests", 2;
 | |
| 	}
 | |
| 
 | |
| 	# The is_IS UTF-8 locale passed from lib-gettext.sh
 | |
| 	my $is_IS_locale = $ENV{is_IS_locale};
 | |
| 
 | |
| 	my $test = sub {
 | |
| 		my ($got, $expect, $msg, $locale) = @_;
 | |
| 		# Maybe this system doesn't have the locale we're trying to
 | |
| 		# test.
 | |
| 		my $locale_ok = setlocale(LC_ALL, $locale);
 | |
| 		is(__($got), $expect, "$msg a gettext library + <$locale> locale <$got> turns into <$expect>");
 | |
| 	};
 | |
| 
 | |
| 	my $env_C = sub {
 | |
| 		$ENV{LANGUAGE} = 'C';
 | |
| 		$ENV{LC_ALL}   = 'C';
 | |
| 	};
 | |
| 
 | |
| 	my $env_is = sub {
 | |
| 		$ENV{LANGUAGE} = 'is';
 | |
| 		$ENV{LC_ALL}   = $is_IS_locale;
 | |
| 	};
 | |
| 
 | |
| 	# Translation's the same as the original
 | |
| 	my ($got, $expect) = (('TEST: A Perl test string') x 2);
 | |
| 
 | |
| 	if ($has_gettext_library) {
 | |
| 		{
 | |
| 			local %ENV; $env_C->();
 | |
| 			$test->($got, $expect, "With", 'C');
 | |
| 		}
 | |
| 
 | |
| 		{
 | |
| 			my ($got, $expect) = ($got, 'TILRAUN: Perl tilraunastrengur');
 | |
| 			local %ENV; $env_is->();
 | |
| 			$test->($got, $expect, "With", $is_IS_locale);
 | |
| 		}
 | |
| 	} else {
 | |
| 		{
 | |
| 			local %ENV; $env_C->();
 | |
| 			$test->($got, $expect, "Without", 'C');
 | |
| 		}
 | |
| 
 | |
| 		{
 | |
| 			local %ENV; $env_is->();
 | |
| 			$test->($got, $expect, "Without", 'is');
 | |
| 		}
 | |
| 	}
 | |
| }
 |