summaryrefslogtreecommitdiff
path: root/t/stream.t
blob: 92b7994e554851ce4abbb7b7fae272f6614a901b (plain)
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
BEGIN {print "1..3\n";}
END {print "not ok 1\n" unless $loaded;}
use XML::Parser;
$loaded = 1;
print "ok 1\n";

my $delim = '------------123453As23lkjlklz877';
my $file = 'samples/REC-xml-19980210.xml';
my $tmpfile = 'stream.tmp';

my $cnt = 0;


open(OUT, ">$tmpfile") or die "Couldn't open $tmpfile for output";
open(IN, $file) or die "Couldn't open $file for input";

while (<IN>) {
  print OUT;
}

close(IN);
print OUT "$delim\n";

open(IN, $file);
while (<IN>) {
  print OUT;
}

close(IN);
close(OUT);

my $parser = new XML::Parser(Stream_Delimiter => $delim,
			     Handlers => {Comment => sub {$cnt++;}});

open(FOO, $tmpfile);

$parser->parse(*FOO);

print "not " if ($cnt != 37);
print "ok 2\n";

$cnt = 0;

$parser->parse(*FOO);

print "not " if ($cnt != 37);
print "ok 3\n";

close(FOO);
unlink($tmpfile);