1#!perl -T
2use strict;
3use File::Spec;
4use Test::More;
5use Net::Pcap;
6
7plan tests => 5;
8
9my($pcap,$err) = ('','');
10
11# from perlport/"Numbers endianness and Width"
12my $is_big_endian    = unpack("h*", pack("s", 1)) =~ /01/;
13my $is_little_endian = unpack("h*", pack("s", 1)) =~ /^1/;
14
15is( $is_big_endian, !$is_little_endian, "checking flags consistency" );
16my $type = $is_big_endian ? "big" : "little";
17diag("This platform has been detected as a $type endian architecture");
18
19# make these values numbers because is_swapped() return 0 or 1, not true or false
20$is_big_endian += 0;  $is_little_endian += 0;
21
22# testing with a big endian dump
23$pcap = Net::Pcap::open_offline(File::Spec->catfile(qw(t samples ping-ietf-20pk-be.dmp)), \$err);
24isa_ok( $pcap, 'pcap_tPtr', "\$pcap" );
25is( Net::Pcap::is_swapped($pcap) , $is_little_endian, "testing with a big endian dump" );
26Net::Pcap::close($pcap);
27
28# testing with a little endian dump
29$pcap = Net::Pcap::open_offline(File::Spec->catfile(qw(t samples ping-ietf-20pk-le.dmp)), \$err);
30isa_ok( $pcap, 'pcap_tPtr', "\$pcap" );
31is( Net::Pcap::is_swapped($pcap) , $is_big_endian, "testing with a little endian dump" );
32Net::Pcap::close($pcap);
33