File: layers.t

package info (click to toggle)
libperl6-slurp-perl 0.051000-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 144 kB
  • sloc: perl: 145; makefile: 2
file content (60 lines) | stat: -rwxr-xr-x 1,367 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
use Test::More "no_plan";
use utf8;
BEGIN {use_ok(Perl6::Slurp)};

my $desc;
sub TEST { $desc = $_[0] };

open FH, '>:utf8', 'data' or exit;
print FH map chr, 0..0x1FF;
close FH;

undef $/;

my @layers = ( qw(:raw :bytes :unix :stdio :perlio :crlf :utf8),
			   ":raw :utf8",
			   ":raw:utf8",
			 );


for my $layer (@layers) {
	open FH, "<$layer", 'data' or exit;
	$data{$layer} = <FH>;
	$len{$layer}  = length $data{$layer};
	close FH;
}

for my $layer (@layers) {
	TEST "scalar slurp from '<$layer', 'data'";
	$str = slurp "<$layer", 'data';
	is $data{$layer}, $str, $desc;
	ok length($str) == $len{$layer}, "length of $desc";

	TEST "scalar slurp from '< $layer', 'data'";
	$str = slurp "< $layer", 'data';
	is $data{$layer}, $str, $desc;
	ok length($str) == $len{$layer}, "length of $desc";
}

%opts = (
	':raw'       => [{raw=>1}],
	':utf8'      => [{utf8=>1}],
	':raw :utf8' => [{raw=>1}, {utf8=>1}],
	':raw:utf8'  => [[raw=>1, utf8=>1]],
);

for my $layer (keys %opts) {
	local $" = ", ";
	TEST "scalar option slurp from 'data', $layer";
	$str = slurp 'data', @{$opts{$layer}};
	is $data{$layer}, $str, $desc;
	ok length($str) == $len{$layer}, "length of $desc";

	TEST "scalar option slurp from $layer, 'data'";
	$str = slurp @{$opts{$layer}}, 'data';
	is $data{$layer}, $str, $desc;
	ok length($str) == $len{$layer}, "length of $desc";

}

unlink 'data';