X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fats%2Ftest_ats_simplistic_change_preference.c;h=d5dbe9f9ac36d688f7d4862e8af50a806f967dff;hb=056f559d916d785164f40e63ca56c153ea0e9ebe;hp=6ded2a93bce2c4b065012fab0bfd12b281d30da3;hpb=3f796fcf771107bd9f0823dcc96ac6dc0db37074;p=oweals%2Fgnunet.git diff --git a/src/ats/test_ats_simplistic_change_preference.c b/src/ats/test_ats_simplistic_change_preference.c index 6ded2a93b..d5dbe9f9a 100644 --- a/src/ats/test_ats_simplistic_change_preference.c +++ b/src/ats/test_ats_simplistic_change_preference.c @@ -26,18 +26,20 @@ */ /** * @file ats/test_ats_simplistic_change_preference.c - * @brief test for changing preferences in ats simplistic solver + * @brief test for changing preferences in ats proportional solver * @author Christian Grothoff * @author Matthias Wachs */ #include "platform.h" #include "gnunet_ats_service.h" -#include "gnunet_testing_lib-new.h" +#include "gnunet_testing_lib.h" #include "ats.h" #include "test_ats_api_common.h" #define DEBUG_ATS_INFO GNUNET_NO +#define SLEEP GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) + static GNUNET_SCHEDULER_TaskIdentifier die_task; /** @@ -144,20 +146,23 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, { if (GNUNET_OK == compare_addresses (address, session, &test_hello_address[0], test_session[0])) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 0: Callback with correct address `%s'\n", + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage %u: Callback with correct address `%s'\n", + stage, GNUNET_i2s (&address->peer)); ret = 0; } else { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 0: Callback with invalid address `%s'\n", + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage %u: Callback with invalid address `%s'\n", + stage, GNUNET_i2s (&address->peer)); ret = 1; } if (GNUNET_OK != compare_ats(atsi, ats_count, test_ats_info, test_ats_count)) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Stage 0: Callback with incorrect ats info \n"); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Stage %u: Callback with incorrect ats info \n", + stage); ret = 1; } @@ -190,82 +195,73 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address, stage ++; - /* Change preference */ - GNUNET_ATS_change_preference (perf_ats, - &p[0].id, - GNUNET_ATS_PREFERENCE_BANDWIDTH,(double) 1000, GNUNET_ATS_PREFERENCE_END); - - /* Request address */ - GNUNET_ATS_suggest_address (sched_ats, &p[0].id); + GNUNET_ATS_suggest_address_cancel (sched_ats, &p[0].id); + GNUNET_ATS_suggest_address (sched_ats, &p[1].id); return; } if (1 == stage) { - /* Expecting callback for address[0] with updated quota and no callback for address[1]*/ - if (GNUNET_OK == compare_addresses (address, session, &test_hello_address[0], test_session[0])) - { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 1: Callback with correct address `%s'\n", - GNUNET_i2s (&address->peer)); - ret = 0; - } - else - { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 1: Callback with invalid address `%s'\n", - GNUNET_i2s (&address->peer)); - ret = 1; - } - - if (GNUNET_OK != compare_ats(atsi, ats_count, test_ats_info, test_ats_count)) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Stage 1: Callback with incorrect ats info \n"); + if (GNUNET_OK == compare_addresses (address, session, &test_hello_address[1], test_session[1])) + { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage %u: Callback with correct address `%s'\n", + stage, + GNUNET_i2s (&address->peer)); + ret = 0; + } + else + { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage %u: Callback with invalid address `%s'\n", + stage, + GNUNET_i2s (&address->peer)); ret = 1; - } - - if (bw_in > wan_quota_in) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggested WAN inbound quota %u bigger than allowed quota %llu \n", - bw_in, wan_quota_in); - ret = 1; - } - else if (p[0].bw_in_assigned > bw_in) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggested WAN inbound quota %u bigger than last quota %llu \n", - bw_in, p[0].bw_in_assigned); - ret = 1; - } - else - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Suggested WAN inbound quota %u, allowed quota %llu \n", + } + + if (GNUNET_OK != compare_ats(atsi, ats_count, test_ats_info, test_ats_count)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Stage %u: Callback with incorrect ats info \n", + stage); + ret = 1; + } + + if (bw_in > wan_quota_in) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggested WAN inbound quota %u bigger than allowed quota %llu \n", bw_in, wan_quota_in); + ret = 1; + } + else + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Suggested WAN inbound quota %u, allowed quota %llu \n", + bw_in, wan_quota_in); - if (bw_out > wan_quota_out) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggested WAN outbound quota %u bigger than allowed quota %llu \n", - bw_out, wan_quota_out); - ret = 1; - } - else if (p[0].bw_out_assigned > bw_out) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggested WAN inbound quota %u bigger than last quota %llu \n", - bw_out, p[0].bw_out_assigned); - ret = 1; - } - else - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Suggested WAN outbound quota %u, allowed quota %llu \n", + if (bw_out > wan_quota_out) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggested WAN outbound quota %u bigger than allowed quota %llu \n", bw_out, wan_quota_out); + ret = 1; + } + else + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Suggested WAN outbound quota %u, allowed quota %llu \n", + bw_out, wan_quota_out); - if (1 == ret) - { - GNUNET_ATS_suggest_address_cancel (sched_ats, &p[1].id); - GNUNET_SCHEDULER_add_now (&end, NULL); - return; - } - stage ++; - - GNUNET_ATS_suggest_address_cancel (sched_ats, &p[1].id); + if (1 == ret) + { + GNUNET_ATS_suggest_address_cancel (sched_ats, &p[0].id); GNUNET_SCHEDULER_add_now (&end, NULL); return; + } + + stage ++; + GNUNET_ATS_suggest_address_cancel (sched_ats, &p[1].id); + GNUNET_SCHEDULER_add_now (&end, NULL); + + return; } +} +static void +sleep_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +{ + GNUNET_ATS_suggest_address (sched_ats, &p[0].id); } static void @@ -345,7 +341,8 @@ run (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created peer `%s'\n", GNUNET_i2s(&p[0].id)); - /* Set up peer 1*/ + + /* Set up peer 0 */ if (GNUNET_SYSERR == GNUNET_CRYPTO_hash_from_string(PEERID1, &p[1].id.hashPubKey)) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not setup peer!\n"); @@ -375,7 +372,35 @@ run (void *cls, test_hello_address[0].address_length = test_addr[0].addr_len; GNUNET_ATS_address_add (sched_ats, &test_hello_address[0], test_session[0], test_ats_info, test_ats_count); - GNUNET_ATS_suggest_address (sched_ats, &p[0].id); + + /* Adding address with session */ + test_session[1] = &test_addr[1]; + create_test_address (&test_addr[1], "test1", test_session[1], "test1", strlen ("test1") + 1); + test_hello_address[1].peer = p[1].id; + test_hello_address[1].transport_name = test_addr[0].plugin; + test_hello_address[1].address = test_addr[0].addr; + test_hello_address[1].address_length = test_addr[0].addr_len; + GNUNET_ATS_address_add (sched_ats, &test_hello_address[1], test_session[1], test_ats_info, test_ats_count); + + + /* Change bandwidth preference */ + GNUNET_ATS_performance_change_preference (perf_ats, + &p[0].id, + GNUNET_ATS_PREFERENCE_BANDWIDTH,(double) 1000, GNUNET_ATS_PREFERENCE_END); + GNUNET_ATS_performance_change_preference (perf_ats, + &p[1].id, + GNUNET_ATS_PREFERENCE_BANDWIDTH,(double) 1000, GNUNET_ATS_PREFERENCE_END); + + + /* Change latency preference */ + + GNUNET_ATS_performance_change_preference (perf_ats, + &p[0].id, + GNUNET_ATS_PREFERENCE_LATENCY,(double) 10, GNUNET_ATS_PREFERENCE_END); + GNUNET_ATS_performance_change_preference (perf_ats, + &p[1].id, + GNUNET_ATS_PREFERENCE_LATENCY,(double) 100, GNUNET_ATS_PREFERENCE_END); + GNUNET_SCHEDULER_add_delayed (SLEEP, &sleep_task, NULL); }