diff options
author | Kent Fredric <kentnl@gentoo.org> | 2017-12-13 22:49:27 +1300 |
---|---|---|
committer | Kent Fredric <kentnl@gentoo.org> | 2017-12-13 22:50:20 +1300 |
commit | b8215cc4b25a990669d40cb047e36c081ee658fc (patch) | |
tree | 0f2cfe01a005b42e6c2628388854f238beff37aa /dev-perl/Net-ARP | |
parent | dev-libs/libxslt: remove redundant revisions, security cleanup (diff) | |
download | gentoo-b8215cc4b25a990669d40cb047e36c081ee658fc.tar.gz gentoo-b8215cc4b25a990669d40cb047e36c081ee658fc.tar.bz2 gentoo-b8215cc4b25a990669d40cb047e36c081ee658fc.zip |
dev-perl/Net-ARP: EAPI6 + Tests
- EAPI6ify
- Enable tests
- Fix tests failing due to '.' in @INC
- Fix tests failing due to assumptions about root/network devices
- Document extended testing strategy
Package-Manager: Portage-2.3.18, Repoman-2.3.6
Diffstat (limited to 'dev-perl/Net-ARP')
-rw-r--r-- | dev-perl/Net-ARP/Net-ARP-1.0.9-r1.ebuild | 40 | ||||
-rw-r--r-- | dev-perl/Net-ARP/files/Net-ARP-1.0.9-perl-5.26.patch | 26 | ||||
-rw-r--r-- | dev-perl/Net-ARP/files/Net-ARP-1.0.9-tests.patch | 117 |
3 files changed, 183 insertions, 0 deletions
diff --git a/dev-perl/Net-ARP/Net-ARP-1.0.9-r1.ebuild b/dev-perl/Net-ARP/Net-ARP-1.0.9-r1.ebuild new file mode 100644 index 000000000000..30628f62959b --- /dev/null +++ b/dev-perl/Net-ARP/Net-ARP-1.0.9-r1.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +DIST_AUTHOR=CRAZYDJ +DIST_VERSION=1.0.9 +DIST_A_EXT=tgz +inherit perl-module + +DESCRIPTION="Perl extension for creating ARP packets" + +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +RDEPEND="dev-perl/Net-Pcap" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/${PN}" + +PATCHES=( + "${FILESDIR}/1.0.9-header.diff" + "${FILESDIR}/${PN}-1.0.9-perl-5.26.patch" + "${FILESDIR}/${PN}-1.0.9-tests.patch" +) + +src_prepare() { + perl -MDevel::PPPort -e 'Devel::PPPort::WriteFile();' + perl-module_src_prepare +} + +src_test() { + if [[ $EUID != 0 || -z $TEST_ARP_IF ]]; then + elog "Comprehensive testing needs additional configuration (and root)." + elog "For details, see:" + elog "https://wiki.gentoo.org/wiki/Project:Perl/maint-notes/${CATEGORY}/${PN}" + fi + perl-module_src_test +} diff --git a/dev-perl/Net-ARP/files/Net-ARP-1.0.9-perl-5.26.patch b/dev-perl/Net-ARP/files/Net-ARP-1.0.9-perl-5.26.patch new file mode 100644 index 000000000000..c15f1d06630c --- /dev/null +++ b/dev-perl/Net-ARP/files/Net-ARP-1.0.9-perl-5.26.patch @@ -0,0 +1,26 @@ +From 56f7021306fe1dbd3b83981062acf2db7e296447 Mon Sep 17 00:00:00 2001 +From: Kent Fredric <kentnl@gentoo.org> +Date: Wed, 13 Dec 2017 21:38:52 +1300 +Subject: Fix loading ARP.pm on Perl 5.26 + +This is now broken without '.' in @INC +--- + t/ARP.t | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/ARP.t b/t/ARP.t +index 9b3ef08..bab58aa 100755 +--- a/t/ARP.t ++++ b/t/ARP.t +@@ -6,7 +6,7 @@ + # change 'tests => 1' to 'tests => last_test_to_print'; + + use Test::More tests => 1; +-BEGIN { use_ok('ARP') }; ++BEGIN { use_ok('Net::ARP') }; + + ######################### + +-- +2.14.3 + diff --git a/dev-perl/Net-ARP/files/Net-ARP-1.0.9-tests.patch b/dev-perl/Net-ARP/files/Net-ARP-1.0.9-tests.patch new file mode 100644 index 000000000000..3cd799a629b7 --- /dev/null +++ b/dev-perl/Net-ARP/files/Net-ARP-1.0.9-tests.patch @@ -0,0 +1,117 @@ +From 38c823ef25d78205e24314233ae7a503967b53e9 Mon Sep 17 00:00:00 2001 +From: Kent Fredric <kentnl@gentoo.org> +Date: Wed, 13 Dec 2017 22:22:20 +1300 +Subject: Guard tests that require network device names and root via ENV + +--- + Makefile.PL | 9 --------- + t/arp_lookup.t | 10 ++++++++-- + t/send_packet.t | 13 +++++++++++-- + test.pl | 23 ++++++++--------------- + 4 files changed, 27 insertions(+), 28 deletions(-) + +diff --git a/Makefile.PL b/Makefile.PL +index e1a4ee7..fbfe0b0 100755 +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -18,15 +18,6 @@ + use ExtUtils::MakeMaker; + use Config; + +-BEGIN { +- eval { require Net::Pcap }; +- +- if($@) +- { +- print "Module Net::Pcap is required for make test!\n"; +- } +-} +- + if($Config{'osname'} =~ /linux/i) + { + $flags = "-DLINUX"; +diff --git a/t/arp_lookup.t b/t/arp_lookup.t +index 4cf9626..df68c90 100644 +--- a/t/arp_lookup.t ++++ b/t/arp_lookup.t +@@ -13,8 +13,14 @@ ok( $mac eq "unknown", "unkown mac on strange dev value -> $mac" ); + $mac = Net::ARP::arp_lookup("$fu","127.0.0.1"); + ok( $mac eq "unknown", "unkown mac on strange dev value 2 -> $mac" ); + +-$mac = Net::ARP::arp_lookup("eth0","this_is_not_an_ip_address"); +-ok( $mac eq "unknown", "unkown mac on strange ip value -> $mac" ); ++SKIP: { ++ ++ skip "TEST_ARP_IF unset", 1 unless exists $ENV{TEST_ARP_IF}; ++ ++ $mac = Net::ARP::arp_lookup($ENV{TEST_ARP_IF},"this_is_not_an_ip_address"); ++ ok( $mac eq "unknown", "unkown mac on strange ip value -> $mac" ); ++ ++} + + #Net::ARP::arp_lookup("eth0","192.168.1.1","fu"); + #ok( $mac eq "unknown", "unkown mac on strange mac value" ); +diff --git a/t/send_packet.t b/t/send_packet.t +index 1f95f4f..3b4b998 100644 +--- a/t/send_packet.t ++++ b/t/send_packet.t +@@ -5,9 +5,18 @@ + # Last update: 22.06.2013 + + use Net::ARP; +-use Test::More qw( no_plan ); ++use Test::More; ++BEGIN { ++ if ( $> != 0 ) { ++ plan skip_all => "This test must be run as root"; ++ } ++ if ( not exists $ENV{TEST_ARP_IF} ) { ++ plan skip_all => "TEST_ARP_IF not specified"; ++ } ++ $dev = $ENV{TEST_ARP_IF}; ++ plan qw/no_plan/; ++} + +-$dev="lo"; + print "Using device $dev to test send_packet()\n"; + + $ret = Net::ARP::send_packet("strange_dev", # network interface +diff --git a/test.pl b/test.pl +index 27af515..c2e4cc2 100755 +--- a/test.pl ++++ b/test.pl +@@ -19,23 +19,16 @@ + use ExtUtils::testlib; + use Net::ARP; + +-BEGIN +-{ +- eval{ require Net::Pcap; }; +- +- if($@ =~ /^Can\'t\slocate/) +- { +- $dev = "eth0"; +- } +- else +- { +- import Net::Pcap; +- $dev = Net::Pcap::lookupdev(\$errbuf); +- } ++if ( $> != 0 ) { ++ print "SKIPPED: test must be run as root\n"; ++ exit 0; + } +- ++if ( not exists $ENV{TEST_ARP_IF} ) { ++ print "SKIPPED: TEST_ARP_IF unset\n"; ++ exit 0; ++} ++$dev = $ENV{TEST_ARP_IF}; + print "Sending ARP reply packet via dev $dev... "; +- + $ret = Net::ARP::send_packet($dev, # network interface + '127.0.0.1', # source ip + '127.0.0.1', # destination ip +-- +2.14.3 + |