diff options
author | Aaron Bauman <bman@gentoo.org> | 2021-01-25 14:45:30 -0500 |
---|---|---|
committer | Aaron Bauman <bman@gentoo.org> | 2021-01-25 14:46:44 -0500 |
commit | 1fc264333692e3e16eb2fb00aee0aa26cc695453 (patch) | |
tree | e261bbfd75cb6e19f328a161a45f0e3f027520a8 /net-analyzer | |
parent | net-misc/iputils: backport tftpd fixes (diff) | |
download | gentoo-1fc264333692e3e16eb2fb00aee0aa26cc695453.tar.gz gentoo-1fc264333692e3e16eb2fb00aee0aa26cc695453.tar.bz2 gentoo-1fc264333692e3e16eb2fb00aee0aa26cc695453.zip |
net-analyzer/arping: fix tests
* add new dev-python/subunit dep for tests
* shorten pkg desc within char limit
* other formatting changes
Closes: https://bugs.gentoo.org/757090
Signed-off-by: Aaron Bauman <bman@gentoo.org>
Diffstat (limited to 'net-analyzer')
-rw-r--r-- | net-analyzer/arping/arping-2.21.ebuild | 19 | ||||
-rw-r--r-- | net-analyzer/arping/files/arping-tests.patch | 190 |
2 files changed, 202 insertions, 7 deletions
diff --git a/net-analyzer/arping/arping-2.21.ebuild b/net-analyzer/arping/arping-2.21.ebuild index 889b70b2de49..6daaf2358a7a 100644 --- a/net-analyzer/arping/arping-2.21.ebuild +++ b/net-analyzer/arping/arping-2.21.ebuild @@ -2,9 +2,10 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=7 + inherit autotools fcaps -DESCRIPTION="A utility to see if a specific IP address is taken and what MAC address owns it" +DESCRIPTION="A utility to see if a specific IP is taken and what MAC owns it" HOMEPAGE="http://www.habets.pp.se/synscan/programs.php?prog=arping" SRC_URI="https://github.com/ThomasHabets/${PN}/archive/${P}.tar.gz" @@ -16,19 +17,23 @@ RESTRICT="!test? ( test )" CDEPEND=" net-libs/libpcap - net-libs/libnet:1.1 -" + net-libs/libnet:1.1" DEPEND=" ${CDEPEND} - test? ( dev-libs/check ) -" + test? ( + dev-libs/check + dev-python/subunit )" RDEPEND=" ${CDEPEND} - !net-misc/iputils[arping(+)] -" + !net-misc/iputils[arping(+)]" + FILECAPS=( cap_net_raw /usr/sbin/arping ) + S=${WORKDIR}/${PN}-${P} +# patch is in upstream master +PATCHES=( "${FILESDIR}/arping-tests.patch" ) + src_prepare() { default eautoreconf diff --git a/net-analyzer/arping/files/arping-tests.patch b/net-analyzer/arping/files/arping-tests.patch new file mode 100644 index 000000000000..fb8592df372f --- /dev/null +++ b/net-analyzer/arping/files/arping-tests.patch @@ -0,0 +1,190 @@ +diff --git a/src/arping_test.c b/src/arping_test.c +index 438670b..0133fe7 100644 +--- a/src/arping_test.c ++++ b/src/arping_test.c +@@ -40,35 +40,10 @@ extern libnet_t* libnet; + extern int mock_libnet_lo_ok; + extern int mock_libnet_null_ok; + +-struct registered_test { +- void* fn; +- const char* name; +-}; +- +-static int numtests = 0; +-static struct registered_test test_registry[1024]; +- +-static int num_exit_tests = 0; +-static struct registered_test test_exit_registry[1024]; +- + int get_mac_addr(const char *in, char *out); + void strip_newline(char* s); + + +-#define MYTEST(a) static void a(int);__attribute__((constructor)) \ +-static void cons_##a() { \ +- test_registry[numtests].fn = a; \ +- test_registry[numtests].name = #a; \ +- numtests++; \ +-} START_TEST(a) +- +-#define MY_EXIT_TEST(a) static void a(int);__attribute__((constructor)) \ +-static void cons_##a() { \ +- test_exit_registry[num_exit_tests].fn = a; \ +- test_exit_registry[num_exit_tests].name = #a; \ +- num_exit_tests++; \ +-} START_TEST(a) +- + /** + * + */ +@@ -236,7 +211,7 @@ dump_packet(uint8_t* packet, int len) + fprintf(stderr, "\n"); + } + +-MYTEST(test_mkpacket) ++START_TEST(test_mkpacket) + { + uint8_t correct_packet[] = { + 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, +@@ -261,7 +236,7 @@ MYTEST(test_mkpacket) + + + // Received uninteresting packet, should not record anything. +-MYTEST(pingip_uninteresting_packet) ++START_TEST(pingip_uninteresting_packet) + { + struct pcap_pkthdr pkthdr; + uint8_t* packet; +@@ -389,7 +364,7 @@ MYTEST(pingip_uninteresting_packet) + } END_TEST + + // Received reply that actually matches. Things should happen. +-MYTEST(pingip_interesting_packet) ++START_TEST(pingip_interesting_packet) + { + struct pcap_pkthdr pkthdr; + extern uint8_t srcmac[ETH_ALEN]; +@@ -449,7 +424,7 @@ MYTEST(pingip_interesting_packet) + "numrecvd not incremented second time"); + } END_TEST + +-MYTEST(strip_newline_test) ++START_TEST(strip_newline_test) + { + const char *tests[][2] = { + {"", ""}, +@@ -469,7 +444,7 @@ MYTEST(strip_newline_test) + } + } END_TEST + +-MYTEST(get_mac_addr_success) ++START_TEST(get_mac_addr_success) + { + const char *tests[][2] = { + // Null. +@@ -501,7 +476,7 @@ MYTEST(get_mac_addr_success) + } + } END_TEST + +-MYTEST(get_mac_addr_fail) ++START_TEST(get_mac_addr_fail) + { + const char *tests[] = { + "", +@@ -517,7 +492,7 @@ MYTEST(get_mac_addr_fail) + } + } END_TEST + +-MY_EXIT_TEST(libnet_init_bad_nolo) ++START_TEST(libnet_init_bad_nolo) + { + // It'll only try lo if named interface fails. + // So by accepting lo, we make sure it doesn't try lo. +@@ -525,27 +500,28 @@ MY_EXIT_TEST(libnet_init_bad_nolo) + do_libnet_init("bad", 0); + } END_TEST + +-MY_EXIT_TEST(libnet_init_null_nolo_nonull) ++START_TEST(libnet_init_null_nolo_nonull) + { + mock_libnet_lo_ok = 0; + mock_libnet_null_ok = 0; + do_libnet_init(NULL, 0); + } END_TEST + +-MYTEST(libnet_init_good) ++START_TEST(libnet_init_good) + { + mock_libnet_lo_ok = 0; // Don't even try falling back to lo. + do_libnet_init("good", 0); + fail_if(libnet == NULL); + } END_TEST + +-MYTEST(libnet_init_null_nolo) ++START_TEST(libnet_init_null_nolo) + { + mock_libnet_lo_ok = 0; + mock_libnet_null_ok = 1; + do_libnet_init(NULL, 0); + fail_if(libnet == NULL); +-} END_TEST ++} ++END_TEST + + static Suite* + arping_suite(void) +@@ -553,17 +529,34 @@ arping_suite(void) + int c; + Suite* s = suite_create("Arping"); + +- //tcase_add_checked_fixture (tc_core, setup, teardown); +- for (c = 0; c < numtests; c++) { +- TCase *tc_core = tcase_create(test_registry[c].name); +- tcase_add_test(tc_core, test_registry[c].fn); +- suite_add_tcase(s, tc_core); +- } +- for (c = 0; c < num_exit_tests; c++) { +- TCase *tc_core = tcase_create(test_exit_registry[c].name); +- tcase_add_exit_test(tc_core, test_exit_registry[c].fn, 1); +- suite_add_tcase(s, tc_core); +- } ++ ++ TCase *tc_core; ++ ++ // libcheck broke test registries, so have to resort to code duplication. :-( ++ // https://github.com/libcheck/check/pull/158/files ++#define SIGH_LIBCHECK(tn) \ ++ tc_core = tcase_create(#tn); \ ++ tcase_add_test(tc_core, tn); \ ++ suite_add_tcase(s, tc_core); ++ ++ SIGH_LIBCHECK(libnet_init_null_nolo); ++ SIGH_LIBCHECK(test_mkpacket); ++ SIGH_LIBCHECK(pingip_uninteresting_packet); ++ SIGH_LIBCHECK(pingip_interesting_packet); ++ SIGH_LIBCHECK(strip_newline_test); ++ SIGH_LIBCHECK(get_mac_addr_success); ++ SIGH_LIBCHECK(get_mac_addr_fail); ++ SIGH_LIBCHECK(libnet_init_good); ++ ++ ++#define SIGH_LIBCHECK_EXIT(tn) \ ++ tc_core = tcase_create(#tn); \ ++ tcase_add_exit_test(tc_core, tn, 1); \ ++ suite_add_tcase(s, tc_core); ++ ++ SIGH_LIBCHECK_EXIT(libnet_init_bad_nolo); ++ SIGH_LIBCHECK_EXIT(libnet_init_null_nolo_nonull); ++ + return s; + } + +@@ -577,6 +570,7 @@ main() + number_failed = srunner_ntests_failed (sr); + srunner_free (sr); + return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; ++ return 0; + } + /* ---- Emacs Variables ---- + * Local Variables: |