]> rtime.felk.cvut.cz Git - frescor/fna.git/commitdiff
added three tests that i did to correct some bugs
authorsangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Tue, 25 Nov 2008 19:09:47 +0000 (19:09 +0000)
committersangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Tue, 25 Nov 2008 19:09:47 +0000 (19:09 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fna/trunk@1437 35b4ef3e-fd22-0410-ab77-dab3279adceb

tests/tests_frescan/test_frescan_bwres_negotiate_in_slave_not_accepted.c [new file with mode: 0644]
tests/tests_frescan/test_frescan_bwres_negotiate_in_slave_with_sc.c [new file with mode: 0644]
tests/tests_frescan/test_frescan_bwres_negotiate_in_slave_with_sc_and_mode_change.c [new file with mode: 0644]

diff --git a/tests/tests_frescan/test_frescan_bwres_negotiate_in_slave_not_accepted.c b/tests/tests_frescan/test_frescan_bwres_negotiate_in_slave_not_accepted.c
new file mode 100644 (file)
index 0000000..43c45f7
--- /dev/null
@@ -0,0 +1,108 @@
+#include <stdio.h>  // perror
+#include <stdlib.h> // exit
+#include <unistd.h>   // sleep
+
+#include "frsh.h"
+
+#include "frescan.h"
+#include "frescan_bwres.h"
+#include "frescan_servers.h"
+
+#define PUT_ERROR(s) {perror (s); exit (-1);}
+
+#define NETWORK 0
+#define LOCAL_NODE 1
+
+// #define ENABLE_LOGGING
+#ifdef ENABLE_LOGGING
+#include <drivers/console_switcher.h>
+#include <misc/logger.h>
+#include <assert.h>
+#define LOG_DEVICE LOG_ETHERNET
+#endif
+
+extern int frescan_fna_network_bytes_to_budget
+                                    (const frsh_resource_id_t resource_id,
+                                    const size_t nbytes,
+                                    frsh_rel_time_t *budget);
+
+int main ()
+{
+        int ret;
+        frescan_init_params_t init_params;
+        frescan_ss_t ss;
+        frsh_contract_t contract;
+        frescan_server_params_t server_params;
+        bool accepted;
+        frsh_rel_time_t budget_min, period_max;
+
+#ifdef ENABLE_LOGGING
+        ret = logger_init(LOG_DEVICE);
+        assert(ret == 0);
+
+        printf("Changing to membuffer console\n");
+        MEMBUFFER_CONSOLE_INIT();
+#endif
+
+        init_params.net = NETWORK;
+        init_params.node = LOCAL_NODE;
+        init_params.tx_fp_max_prio = 10;
+        init_params.rx_num_of_channels = 10;
+        init_params.rx_channel_max_prio = NULL;
+
+        printf("Initializing FRESCAN\n");
+        ret = frescan_init(&init_params);
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
+
+        printf("Initializing BWRES\n");
+        ret = frescan_bwres_init(NETWORK);
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
+
+        ret = frsh_contract_init(&contract);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        ret = frescan_fna_network_bytes_to_budget (NETWORK, 8*5, &budget_min);
+        if (ret != 0) PUT_ERROR ("could not transform bytes to budget");
+
+        period_max = frsh_msec_to_rel_time(1);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                         &budget_min,
+                         &period_max,
+                         FRSH_WT_INDETERMINATE,
+                         FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
+
+        ret = frsh_contract_set_preemption_level(&contract, 6);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+
+        printf("Negotiating a contract\n");
+        ret = frescan_bwres_negotiate(NETWORK, &contract, &ss, &accepted);
+        if (ret != 0) PUT_ERROR ("could not negotiate succesfully");
+
+        if (accepted) {
+                printf("The contract was accepted, ss:%u\n", ss);
+                ret = frescan_servers_get_data(NETWORK, &server_params, ss);
+                if (ret != 0) PUT_ERROR ("could not get servers data");
+
+                printf("B:%u, T=(%u,%u), P:%u\n",
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
+                       server_params.prio);
+        } else {
+                printf("The contract was not accepted\n");
+        }
+
+        printf("MAIN DONE\n");
+
+#ifdef ENABLE_LOGGING
+        while (logger_manual_call() > 0);
+#endif
+
+        while (1) sleep(1);
+        return 0;
+}
+
+
diff --git a/tests/tests_frescan/test_frescan_bwres_negotiate_in_slave_with_sc.c b/tests/tests_frescan/test_frescan_bwres_negotiate_in_slave_with_sc.c
new file mode 100644 (file)
index 0000000..58abf9f
--- /dev/null
@@ -0,0 +1,104 @@
+#include <stdio.h>  // perror
+#include <stdlib.h> // exit
+#include <unistd.h>   // sleep
+
+#include "frsh.h"
+
+#include "frescan.h"
+#include "frescan_bwres.h"
+#include "frescan_servers.h"
+
+#define PUT_ERROR(s) {perror (s); exit (-1);}
+
+#define NETWORK 0
+#define LOCAL_NODE 1
+
+extern int frescan_fna_network_bytes_to_budget
+                                    (const frsh_resource_id_t resource_id,
+                                    const size_t nbytes,
+                                    frsh_rel_time_t *budget);
+
+int main ()
+{
+        int ret;
+        frescan_init_params_t init_params;
+        frescan_ss_t ss_sc;
+        frsh_contract_t contract_sc;
+        frescan_server_params_t server_params;
+        bool accepted;
+        frsh_rel_time_t budget_min, budget_max, period_max, period_min;
+
+        init_params.net = NETWORK;
+        init_params.node = LOCAL_NODE;
+        init_params.tx_fp_max_prio = 10;
+        init_params.rx_num_of_channels = 10;
+        init_params.rx_channel_max_prio = NULL;
+
+        printf("Initializing FRESCAN\n");
+        ret = frescan_init(&init_params);
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
+
+        printf("Initializing BWRES\n");
+        ret = frescan_bwres_init(NETWORK);
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
+
+        printf("Create a contract with spare capacity\n");
+
+        ret = frsh_contract_init(&contract_sc);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        ret = frescan_fna_network_bytes_to_budget (NETWORK, 8*1, &budget_min);
+        if (ret != 0) PUT_ERROR ("could not transform bytes to budget");
+
+        ret = frescan_fna_network_bytes_to_budget (NETWORK, 8*5, &budget_max);
+        if (ret != 0) PUT_ERROR ("could not transform bytes to budget");
+
+        period_max = frsh_msec_to_rel_time(1); // 3,369 secs
+        period_min = period_max;
+
+        ret = frsh_contract_set_basic_params
+                        (&contract_sc,
+                         &budget_min,
+                         &period_max,
+                         FRSH_WT_INDETERMINATE,
+                         FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
+
+        ret = frsh_contract_set_preemption_level
+                        (&contract_sc, FRESCAN_BWRES_NEG_MSG_PRIO + 1);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+
+        ret = frsh_contract_set_reclamation_params(&contract_sc,
+                                                   0,
+                                                   &budget_max,
+                                                   &period_min,
+                                                   FRSH_GR_CONTINUOUS,
+                                                   NULL,
+                                                   1,
+                                                   1);
+        if (ret != 0) PUT_ERROR ("could not set reclamation params");
+
+        printf("Negotiating a contract\n");
+        ret = frescan_bwres_negotiate(NETWORK, &contract_sc, &ss_sc, &accepted);
+        if (ret != 0) PUT_ERROR ("could not negotiate succesfully");
+
+        if (accepted) {
+                printf("The contract was accepted, ss_sc:%u\n", ss_sc);
+                ret = frescan_servers_get_data(NETWORK, &server_params, ss_sc);
+                if (ret != 0) PUT_ERROR ("could not get servers data");
+
+                printf("B:%u, T=(%u,%u), P:%u\n",
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
+                       server_params.prio);
+        } else {
+                printf("The contract was not accepted\n");
+        }
+
+        while (1) sleep(1);
+
+        return 0;
+}
+
+
diff --git a/tests/tests_frescan/test_frescan_bwres_negotiate_in_slave_with_sc_and_mode_change.c b/tests/tests_frescan/test_frescan_bwres_negotiate_in_slave_with_sc_and_mode_change.c
new file mode 100644 (file)
index 0000000..da65a0d
--- /dev/null
@@ -0,0 +1,157 @@
+#include <stdio.h>  // perror
+#include <stdlib.h> // exit
+#include <unistd.h>   // sleep
+
+#include "frsh.h"
+
+#include "frescan.h"
+#include "frescan_bwres.h"
+#include "frescan_servers.h"
+
+#define PUT_ERROR(s) {perror (s); exit (-1);}
+
+#define NETWORK 0
+#define LOCAL_NODE 1
+
+extern int frescan_fna_network_bytes_to_budget
+                                    (const frsh_resource_id_t resource_id,
+                                    const size_t nbytes,
+                                    frsh_rel_time_t *budget);
+
+int main ()
+{
+        int ret;
+        frescan_init_params_t init_params;
+        frescan_ss_t ss_sc, ss_no_sc;
+        frsh_contract_t contract_sc, contract_no_sc;
+        frescan_server_params_t server_params;
+        bool accepted;
+        frsh_rel_time_t budget_min, budget_max, period_max, period_min;
+
+        init_params.net = NETWORK;
+        init_params.node = LOCAL_NODE;
+        init_params.tx_fp_max_prio = 10;
+        init_params.rx_num_of_channels = 10;
+        init_params.rx_channel_max_prio = NULL;
+
+        printf("Initializing FRESCAN\n");
+        ret = frescan_init(&init_params);
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
+
+        printf("Initializing BWRES\n");
+        ret = frescan_bwres_init(NETWORK);
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
+
+        printf("Create a contract with spare capacity\n");
+
+        ret = frsh_contract_init(&contract_sc);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        ret = frescan_fna_network_bytes_to_budget (NETWORK, 8*1, &budget_min);
+        if (ret != 0) PUT_ERROR ("could not transform bytes to budget");
+
+        ret = frescan_fna_network_bytes_to_budget (NETWORK, 8*5, &budget_max);
+        if (ret != 0) PUT_ERROR ("could not transform bytes to budget");
+
+        period_max = frsh_msec_to_rel_time(1); // 3,369 secs
+        period_min = period_max;
+
+        ret = frsh_contract_set_basic_params
+                        (&contract_sc,
+                         &budget_min,
+                         &period_max,
+                         FRSH_WT_INDETERMINATE,
+                         FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
+
+        ret = frsh_contract_set_preemption_level
+                        (&contract_sc, FRESCAN_BWRES_NEG_MSG_PRIO + 1);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+
+        ret = frsh_contract_set_reclamation_params(&contract_sc,
+                                                   0,
+                                                   &budget_max,
+                                                   &period_min,
+                                                   FRSH_GR_CONTINUOUS,
+                                                   NULL,
+                                                   1,
+                                                   1);
+        if (ret != 0) PUT_ERROR ("could not set reclamation params");
+
+        printf("Negotiating a contract\n");
+        ret = frescan_bwres_negotiate(NETWORK, &contract_sc, &ss_sc, &accepted);
+        if (ret != 0) PUT_ERROR ("could not negotiate succesfully");
+
+        if (accepted) {
+                printf("The contract was accepted, ss_sc:%u\n", ss_sc);
+                ret = frescan_servers_get_data(NETWORK, &server_params, ss_sc);
+                if (ret != 0) PUT_ERROR ("could not get servers data");
+
+                printf("B:%u, T=(%u,%u), P:%u\n",
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
+                       server_params.prio);
+        } else {
+                printf("The contract was not accepted\n");
+        }
+
+        printf("Create a contract without spare capacity\n");
+
+        ret = frsh_contract_init(&contract_no_sc);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        ret = frescan_fna_network_bytes_to_budget (NETWORK, 8*2, &budget_min);
+        if (ret != 0) PUT_ERROR ("could not transform bytes to budget");
+
+        ret = frsh_contract_set_basic_params
+                        (&contract_no_sc,
+                         &budget_min,
+                         &period_max,
+                         FRSH_WT_INDETERMINATE,
+                         FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
+
+        ret = frsh_contract_set_preemption_level
+                        (&contract_no_sc, FRESCAN_BWRES_NEG_MSG_PRIO + 2);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+
+        printf("Negotiating non sc contract\n");
+        ret = frescan_bwres_negotiate(NETWORK, &contract_no_sc,
+                                      &ss_no_sc, &accepted);
+        if (ret != 0) PUT_ERROR ("could not negotiate succesfully");
+
+        if (accepted) {
+                printf("The contract was accepted, ss_no_sc:%u\n", ss_no_sc);
+                ret = frescan_servers_get_data(NETWORK,
+                                               &server_params, ss_no_sc);
+                if (ret != 0) PUT_ERROR ("could not get servers data");
+
+                printf("B:%u, T=(%u,%u), P:%u\n",
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
+                       server_params.prio);
+        } else {
+                printf("The contract was not accepted\n");
+        }
+
+        printf("Get params from sc vres\n");
+
+        ret = frescan_servers_get_data(NETWORK,
+                                       &server_params, ss_sc);
+        if (ret != 0) PUT_ERROR ("could not get servers data");
+
+        printf("B:%u, T=(%u,%u), P:%u\n",
+               server_params.budget,
+               server_params.period.tv_sec,
+               server_params.period.tv_nsec,
+               server_params.prio);
+
+        printf("MAIN DONE\n");
+        while (1) sleep(1);
+
+        return 0;
+}
+
+