diff options
author | iphydf <iphydf@users.noreply.github.com> | 2018-08-09 23:53:39 +0000 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2018-08-16 21:01:38 +0000 |
commit | 54066f338f185f2fbd6694d9a4877f42cbfa21c8 (patch) | |
tree | e056e50af1009bf373c040812e46cd1de8de9979 /auto_tests/dht_test.c | |
parent | 31ea1aa06e59d24d5196b17be9a7105d85c25080 (diff) |
Reduce the number of times `unix_time_update` is called.
Reduced by, e.g.:
* `file_transfer_test`: 33% of the `clock_gettime` calls.
* `tox_many_test`: 53% of the `clock_gettime` calls.
Other tests will see similar improvements. Real world applications will
be closer to 40-50% improvement, since tox_many_test has 100 nodes, while
file_transfer_test has 2 nodes.
Diffstat (limited to 'auto_tests/dht_test.c')
-rw-r--r-- | auto_tests/dht_test.c | 57 |
1 files changed, 20 insertions, 37 deletions
diff --git a/auto_tests/dht_test.c b/auto_tests/dht_test.c index 8b96f09a..2f273727 100644 --- a/auto_tests/dht_test.c +++ b/auto_tests/dht_test.c | |||
@@ -389,21 +389,19 @@ static void test_addto_lists(IP ip) | |||
389 | logger_kill(log); | 389 | logger_kill(log); |
390 | } | 390 | } |
391 | 391 | ||
392 | START_TEST(test_addto_lists_ipv4) | 392 | static void test_addto_lists_ipv4(void) |
393 | { | 393 | { |
394 | IP ip; | 394 | IP ip; |
395 | ip_init(&ip, 0); | 395 | ip_init(&ip, 0); |
396 | test_addto_lists(ip); | 396 | test_addto_lists(ip); |
397 | } | 397 | } |
398 | END_TEST | ||
399 | 398 | ||
400 | START_TEST(test_addto_lists_ipv6) | 399 | static void test_addto_lists_ipv6(void) |
401 | { | 400 | { |
402 | IP ip; | 401 | IP ip; |
403 | ip_init(&ip, 1); | 402 | ip_init(&ip, 1); |
404 | test_addto_lists(ip); | 403 | test_addto_lists(ip); |
405 | } | 404 | } |
406 | END_TEST | ||
407 | 405 | ||
408 | #define DHT_DEFAULT_PORT (TOX_PORT_DEFAULT + 1000) | 406 | #define DHT_DEFAULT_PORT (TOX_PORT_DEFAULT + 1000) |
409 | 407 | ||
@@ -580,7 +578,7 @@ static void test_list_main(void) | |||
580 | } | 578 | } |
581 | 579 | ||
582 | 580 | ||
583 | START_TEST(test_list) | 581 | static void test_list(void) |
584 | { | 582 | { |
585 | uint8_t i; | 583 | uint8_t i; |
586 | 584 | ||
@@ -588,7 +586,6 @@ START_TEST(test_list) | |||
588 | test_list_main(); | 586 | test_list_main(); |
589 | } | 587 | } |
590 | } | 588 | } |
591 | END_TEST | ||
592 | 589 | ||
593 | static void ip_callback(void *data, int32_t number, IP_Port ip_port) | 590 | static void ip_callback(void *data, int32_t number, IP_Port ip_port) |
594 | { | 591 | { |
@@ -596,13 +593,15 @@ static void ip_callback(void *data, int32_t number, IP_Port ip_port) | |||
596 | 593 | ||
597 | #define NUM_DHT_FRIENDS 20 | 594 | #define NUM_DHT_FRIENDS 20 |
598 | 595 | ||
599 | START_TEST(test_DHT_test) | 596 | static void test_DHT_test(void) |
600 | { | 597 | { |
601 | uint32_t to_comp = 8394782; | 598 | uint32_t to_comp = 8394782; |
602 | DHT *dhts[NUM_DHT]; | 599 | DHT *dhts[NUM_DHT]; |
603 | Logger *logs[NUM_DHT]; | 600 | Logger *logs[NUM_DHT]; |
604 | uint32_t index[NUM_DHT]; | 601 | uint32_t index[NUM_DHT]; |
605 | 602 | ||
603 | unix_time_update(); | ||
604 | |||
606 | uint32_t i, j; | 605 | uint32_t i, j; |
607 | 606 | ||
608 | for (i = 0; i < NUM_DHT; ++i) { | 607 | for (i = 0; i < NUM_DHT; ++i) { |
@@ -664,6 +663,7 @@ loop_top: | |||
664 | } | 663 | } |
665 | 664 | ||
666 | for (i = 0; i < NUM_DHT; ++i) { | 665 | for (i = 0; i < NUM_DHT; ++i) { |
666 | unix_time_update(); | ||
667 | networking_poll(dhts[i]->net, nullptr); | 667 | networking_poll(dhts[i]->net, nullptr); |
668 | do_dht(dhts[i]); | 668 | do_dht(dhts[i]); |
669 | } | 669 | } |
@@ -678,9 +678,8 @@ loop_top: | |||
678 | logger_kill(logs[i]); | 678 | logger_kill(logs[i]); |
679 | } | 679 | } |
680 | } | 680 | } |
681 | END_TEST | ||
682 | 681 | ||
683 | START_TEST(test_dht_create_packet) | 682 | static void test_dht_create_packet(void) |
684 | { | 683 | { |
685 | uint8_t plain[100] = {0}; | 684 | uint8_t plain[100] = {0}; |
686 | uint8_t pkt[1 + CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE + sizeof(plain) + CRYPTO_MAC_SIZE]; | 685 | uint8_t pkt[1 + CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE + sizeof(plain) + CRYPTO_MAC_SIZE]; |
@@ -697,7 +696,6 @@ START_TEST(test_dht_create_packet) | |||
697 | 696 | ||
698 | printf("Create Packet Successful!\n"); | 697 | printf("Create Packet Successful!\n"); |
699 | } | 698 | } |
700 | END_TEST | ||
701 | 699 | ||
702 | #define MAX_COUNT 3 | 700 | #define MAX_COUNT 3 |
703 | 701 | ||
@@ -750,7 +748,7 @@ static void random_ip(IP_Port *ipp, int family) | |||
750 | 748 | ||
751 | #define PACKED_NODES_SIZE (SIZE_IPPORT + CRYPTO_PUBLIC_KEY_SIZE) | 749 | #define PACKED_NODES_SIZE (SIZE_IPPORT + CRYPTO_PUBLIC_KEY_SIZE) |
752 | 750 | ||
753 | START_TEST(test_dht_node_packing) | 751 | static void test_dht_node_packing(void) |
754 | { | 752 | { |
755 | const uint16_t length = MAX_COUNT * PACKED_NODES_SIZE; | 753 | const uint16_t length = MAX_COUNT * PACKED_NODES_SIZE; |
756 | uint8_t *data = (uint8_t *)malloc(length); | 754 | uint8_t *data = (uint8_t *)malloc(length); |
@@ -789,38 +787,23 @@ START_TEST(test_dht_node_packing) | |||
789 | 787 | ||
790 | free(data); | 788 | free(data); |
791 | } | 789 | } |
792 | END_TEST | ||
793 | |||
794 | static Suite *dht_suite(void) | ||
795 | { | ||
796 | Suite *s = suite_create("DHT"); | ||
797 | DEFTESTCASE(dht_create_packet); | ||
798 | DEFTESTCASE(dht_node_packing); | ||
799 | |||
800 | DEFTESTCASE_SLOW(list, 20); | ||
801 | DEFTESTCASE_SLOW(DHT_test, 50); | ||
802 | |||
803 | if (enable_broken_tests) { | ||
804 | DEFTESTCASE(addto_lists_ipv4); | ||
805 | DEFTESTCASE(addto_lists_ipv6); | ||
806 | } | ||
807 | |||
808 | return s; | ||
809 | } | ||
810 | 790 | ||
811 | int main(void) | 791 | int main(void) |
812 | { | 792 | { |
813 | setvbuf(stdout, nullptr, _IONBF, 0); | 793 | setvbuf(stdout, nullptr, _IONBF, 0); |
814 | 794 | ||
815 | Suite *dht = dht_suite(); | 795 | unix_time_update(); |
816 | SRunner *test_runner = srunner_create(dht); | ||
817 | 796 | ||
818 | uint8_t number_failed = 0; | 797 | test_dht_create_packet(); |
819 | //srunner_set_fork_status(test_runner, CK_NOFORK); | 798 | test_dht_node_packing(); |
820 | srunner_run_all(test_runner, CK_NORMAL); | ||
821 | number_failed = srunner_ntests_failed(test_runner); | ||
822 | 799 | ||
823 | srunner_free(test_runner); | 800 | test_list(); |
801 | test_DHT_test(); | ||
802 | |||
803 | if (enable_broken_tests) { | ||
804 | test_addto_lists_ipv4(); | ||
805 | test_addto_lists_ipv6(); | ||
806 | } | ||
824 | 807 | ||
825 | return number_failed; | 808 | return 0; |
826 | } | 809 | } |