Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Reindent everything (possibly breaking all branches, but for the last time)
[simgrid.git] / teshsuite / simdag / network / test_reinit_costs.c
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 #include "simdag/simdag.h"
5
6 /*
7  * SimDag
8  * Computation tests
9  * Copyright (C) 2007 
10  * Sascha Hunold, Frederic Suter
11  */
12
13 /*
14  * This test checks if the reinitialization of
15  * surf works properly. 
16  * 1 test: empty task, reinit, empty task
17  * 2 test: comm cost task, reinit, empty task
18  * 
19  * output should be:
20  * 0
21  * 1.5
22  */
23
24 static SD_task_t create_empty_cost_root()
25 {
26   double no_cost[] = { 0.0 };
27   SD_task_t root;
28
29   root = SD_task_create("Root", NULL, 1.0);
30   SD_task_schedule(root, 1, SD_workstation_get_list(), no_cost, no_cost,
31                    -1.0);
32
33   return root;
34 }
35
36 static void zero_cost_test(int *argc, char *argv[])
37 {
38   double time;
39   SD_task_t task;
40
41   SD_init(argc, argv);
42   SD_create_environment(argv[1]);
43
44   task = create_empty_cost_root();
45   SD_simulate(-1.0);
46   SD_task_destroy(task);
47
48   SD_application_reinit();
49
50   task = create_empty_cost_root();
51   SD_simulate(-1.0);
52   SD_task_destroy(task);
53
54   SD_simulate(-1.0);
55
56   time = SD_get_clock();
57   printf("%g\n", time);
58   fflush(stdout);
59
60   SD_exit();
61 }
62
63 static SD_task_t create_root_with_costs()
64 {
65   double comp_cost[] = { 0.0, 0.0 };
66   double comm_cost[] = { 0.0, 1.0, 0.0, 0.0 };
67   SD_task_t root;
68
69   root = SD_task_create("Root", NULL, 1.0);
70   SD_task_schedule(root, 2, SD_workstation_get_list(), comp_cost, comm_cost,
71                    -1.0);
72
73   return root;
74 }
75
76 static void zero_cost_test2(int *argc, char *argv[])
77 {
78   double time;
79   SD_task_t task;
80
81   SD_init(argc, argv);
82   SD_create_environment(argv[1]);
83
84   task = create_root_with_costs();
85   SD_simulate(-1.0);
86   SD_task_destroy(task);
87
88   SD_application_reinit();
89
90   task = create_empty_cost_root();
91   SD_simulate(-1.0);
92   SD_task_destroy(task);
93
94   SD_simulate(-1.0);
95
96   time = SD_get_clock();
97   printf("%g\n", time);
98   fflush(stdout);
99
100   SD_exit();
101 }
102
103 int main(int argc, char **argv)
104 {
105
106   zero_cost_test(&argc, argv);
107
108   zero_cost_test2(&argc, argv);
109
110   return 0;
111 }