File: 005_clone.t

package info (click to toggle)
libfile-mmagic-xs-perl 0.09008-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 484 kB
  • sloc: perl: 2,130; ansic: 1,858; makefile: 9; xml: 1
file content (53 lines) | stat: -rw-r--r-- 1,071 bytes parent folder | download | duplicates (5)
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
#!perl
use strict;
use Test::More;
my %map;
BEGIN
{
    my $file = __FILE__;
    %map = (
        $file             => 'text/plain',
        't/data/test.xml' => 'text/xml',
        't/data/test.rtf' => 'application/rtf'
    );
    plan(tests => (scalar( keys %map ) * 4) * 4 + 1);
}

BEGIN
{
    use_ok("File::MMagic::XS");
}


my $fm = File::MMagic::XS->new;
my $clone = $fm->clone();

{
    runthrough($fm);
    undef $fm;
}

{
    runthrough($clone);
    undef $clone;
}

sub runthrough {
    my $fm = shift;

    foreach my $endl ("\n", "\0") {
        local $/ = $endl;
        while (my($file, $mime) = each %map) {
            my $got = $fm->get_mime($file);
            is($got, $mime, "$file: expected $mime");
    
            ok(open(F, $file), "ok to open $file");
            is($fm->fhmagic(\*F), $mime, "$file: expected $mime from fhmagic");
    
            seek(F, 0, 0);
            my $buf = do { local $/ = undef; <F> };
            my $ref = \$buf;
            is($fm->bufmagic($ref), $mime, "$file: expected $mime from bufmagic");
        }
    }
}