changes
[urisagit/Perl-Docs.git] / t / binmode.t
CommitLineData
6290dc09 1#!/usr/local/bin/perl -w
2
3use strict ;
4use Test::More ;
5use Carp ;
6use File::Slurp ;
7
12444d55 8BEGIN {
9 plan skip_all => 'Older Perl lacking unicode support'
10 if $] < 5.008001 ;
6290dc09 11}
12
13plan tests => 2 ;
14
12444d55 15my $suf = 'utf8' ;
16my $mode = ":$suf" ;
17
18my $is_win32 = $^O =~ /win32/i ;
6290dc09 19
20my $orig_text = "\x{20ac}\n" ;
12444d55 21( my $win32_text = $orig_text ) =~ s/\n/\015\012/ ;
6290dc09 22my $unicode_length = length $orig_text ;
23
12444d55 24my $control_file = "control.$suf" ;
25my $slurp_file = "slurp.$suf" ;
6290dc09 26
27open( my $fh, ">$mode", $control_file ) or
28 die "cannot create control unicode file '$control_file' $!" ;
29print $fh $orig_text ;
30close $fh ;
31
32my $slurp_utf = read_file( $control_file, binmode => $mode ) ;
12444d55 33my $written_text = $is_win32 ? $win32_text : $orig_text ;
34is( $slurp_utf, $written_text, "read_file of $mode file" ) ;
6290dc09 35
36# my $slurp_utf_length = length $slurp_utf ;
37# my $slurp_text = read_file( $control_file ) ;
38# my $slurp_text_length = length $slurp_text ;
39# print "LEN UTF $slurp_utf_length TXT $slurp_text_length\n" ;
40
41write_file( $slurp_file, {binmode => $mode}, $orig_text ) ;
42
43open( $fh, "<$mode", $slurp_file ) or
44 die "cannot open slurp test file '$slurp_file' $!" ;
45my $read_length = read( $fh, my $utf_text, $unicode_length ) ;
46close $fh ;
47
12444d55 48is( $utf_text, $orig_text, "write_file of $mode file" ) ;
6290dc09 49
50unlink( $control_file, $slurp_file ) ;