From 1fc264333692e3e16eb2fb00aee0aa26cc695453 Mon Sep 17 00:00:00 2001 From: Aaron Bauman Date: Mon, 25 Jan 2021 14:45:30 -0500 Subject: 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 --- net-analyzer/arping/files/arping-tests.patch | 190 +++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 net-analyzer/arping/files/arping-tests.patch (limited to 'net-analyzer/arping/files') 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: -- cgit v1.2.3-65-gdbad