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/arping/files | |
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/arping/files')
-rw-r--r-- | net-analyzer/arping/files/arping-tests.patch | 190 |
1 files changed, 190 insertions, 0 deletions
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: |