The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use FindBin qw( $Bin );
use File::Spec::Functions qw( catfile );

use Test::More tests => 5;
BEGIN { use_ok('Net::Sharktools', qw( perlshark_read perlshark_read_xs)) };

my $test_file = catfile($Bin, 'capture1.pcap');

my ($expected, $fields, $result);

$fields = [qw(
    frame.number
    ip.version
    tcp.seq
    udp.dstport
    frame.len
)];

$expected = {
    'frame.number' => 1, 
    'tcp.seq'      => undef,
    'frame.len'    => 60,
    'udp.dstport'  => 60000,
    'ip.version'   => 4,
};

$result = perlshark_read(
    filename => $test_file,
    fieldnames => $fields,
    dfilter => 'ip.version eq 4'
);

ok(defined($result), 'perlshark_read return');
is_deeply($result->[0], $expected, 'perlshark_read returns expected info');

$result = perlshark_read_xs(
    $test_file,
    $fields,
    'ip.version eq 4',
);

ok(defined($result), 'perlshark_read_xs return');
is_deeply($result->[0], $expected, 'perlshark_read_xs returns expected info');