]> rtime.felk.cvut.cz Git - frescor/frsh.git/blobdiff - frsh_api/tests/negotiation.c
frsh: Simplify negotiation test and rename the full test as renegotiation
[frescor/frsh.git] / frsh_api / tests / negotiation.c
index dc23954ef8ed48a5955865ae52216bb745b30f65..cfdd0b773a6113ae957de0b57403dfeb5c4ccfec 100644 (file)
@@ -1,56 +1,48 @@
 #include <frsh.h>
 #include <error.h>
 #include <res_dummy.h>
+#include <getopt.h>
+#include <ul_logreg.h>
+#include <wvtest.h>
 
-#define N 3
-
-int b[N] = { 10, 20, 30 };
-
-int main(int argc, char *argv[])
+WVTEST_MAIN("single negotiation and cancelation")
 {
        int ret;
-       frsh_contract_t contract[N];
-       frsh_vres_id_t vres[N];
+
+       frsh_contract_t contract, c;
+       frsh_vres_id_t vres;
        frsh_rel_time_t budget, period, deadline;
-       frsh_signal_info_t si;
-       int i;
 
-       ret = frsh_init();
-       if (ret) PERROR_AND_EXIT(ret, "frsh_init");
+       setenv("WVTEST_DIE_FAST", "", 1);
+       ret = WVFRSH(frsh_init());
 
-       /* Negotiate N contracts */
-       for (i=0; i<N; i++) {
-               ret = frsh_contract_init(&contract[i]);
-               if (ret) PERROR_AND_EXIT(ret, "frsh_contract_init");
+       /* Negotiate the contract */
+       ret = WVFRSH(frsh_contract_init(&contract));
+       
+       ret = WVFRSH(frsh_contract_set_resource_and_label(
+                            &contract,
+                            DUMMY_RESOURCE_TYPE, DUMMY_RESOURCE_ID,
+                            NULL));
+       
+       budget = fosa_msec_to_rel_time(10);
+       period = fosa_msec_to_rel_time(100);
+       deadline = fosa_msec_to_rel_time(50);
+       ret = WVFRSH(frsh_contract_set_basic_params(&contract,
+                                                   &budget,
+                                                   &period,
+                                                   FRSH_WT_BOUNDED,
+                                                   FRSH_CT_REGULAR));
+       
+       ret = WVFRSH(frsh_contract_set_timing_reqs(&contract,
+                                                  false, &deadline));
+       
+       ret = WVFRSH(frsh_contract_negotiate(&contract, &vres));
+       WVFRSH(frsh_vres_get_contract(vres, &c));
+       WVPASS(fres_contract_get_budget(&c, &budget));
+       WVPASS(fosa_rel_time_to_msec(budget) == 10);
 
-               ret = frsh_contract_set_resource_and_label(
-                       &contract[i],
-                       DUMMY_RESOURCE_TYPE, DUMMY_RESOURCE_ID,
-                       NULL);
-               if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_resource_and_label");
+       /* Cancel the contract */
+       ret = WVFRSH(frsh_contract_cancel(vres));
 
-               budget = fosa_msec_to_rel_time(b[i]);
-               period = fosa_msec_to_rel_time(100);
-               period = fosa_msec_to_rel_time(50);
-               ret = frsh_contract_set_basic_params(&contract[i],
-                                                    &budget,
-                                                    &period,
-                                                    FRSH_WT_BOUNDED,
-                                                    FRSH_CT_REGULAR);
-               if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_basic_params");
-               
-               ret = frsh_contract_set_timing_reqs(&contract[i],
-                                                   false, &deadline,
-                                           0, si, 0, si);
-               if (ret) PERROR_AND_EXIT(ret, "frsh_contract_set_timing_reqs");
-               
-               ret = frsh_contract_negotiate(&contract[i], &vres[i]);
-               if (ret) PERROR_AND_EXIT(ret, "frsh_contract_negotiate");
-       }
-       /* Cancel N contracts */
-       for (i=0; i<N; i++) {
-               ret = frsh_contract_cancel(vres[i]);
-               if (ret) PERROR_AND_EXIT(ret, "frsh_contract_cancel");
-       }
-       return 0;
+       frsh_destroy();
 }