Fixed the issue that t/12-cache.t was not able to run in MS-Win32, due to missing binmode on file I/O, where MS-Win32 behaves differently with Linux on text file I/O.

This commit is contained in:
2019-09-17 00:57:05 +08:00
parent b3bce9147e
commit 124281b941
2 changed files with 9 additions and 5 deletions

View File

@ -26,11 +26,14 @@ $r = eval {
$mo_file1 = catfile($LOCALEDIR, "en", "LC_MESSAGES", "test-cache.mo");
($atime, $mtime0, $size) = (stat $mo_file0)[8,9,7];
open $FH, $mo_file0 or die "$mo_file0: $!";
binmode $FH or die "$mo_file0: $!";
read $FH, $content, $size or die "$mo_file0: $!";
close $FH or die "$mo_file0: $!";
open $FH, ">$mo_file1" or die "$mo_file1: $!";
binmode $FH or die "$mo_file1: $!";
print $FH $content or die "$mo_file1: $!";
close $FH or die "$mo_file1: $!";
$mtime1 = (stat $mo_file1)[9];
utime $atime, $mtime0, $mo_file1 or die "$mo_file1: $!";
require T_L10N;
@ -39,15 +42,16 @@ $r = eval {
$_->bindtextdomain("test-cache", $LOCALEDIR);
$_->textdomain("test-cache");
$_[0] = $_->maketext("Hello, world!");
my %Lexicon = %{$_->{"Lexicon"}};
# Update the file but keep the size and mtime
open $FH, "+<$mo_file1" or die "$mo_file1: $!";
binmode $FH or die "$mo_file1: $!";
read $FH, $content, $size or die "$mo_file1: $!";
$content =~ s/Hiya/HiYa/;
seek $FH, 0, 0 or die "$mo_file1: $!";
print $FH $content or die "$mo_file1: $!";
close $FH or die "$mo_file1: $!";
($mtime1, $size) = (stat $mo_file1)[9,7];
utime $atime, $mtime0, $mo_file1 or die "$mo_file1: $!";
$_->textdomain("test-cache");
$_[1] = $_->maketext("Hello, world!");