Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
694a5c3de5bb134966699f2148e9d038924d873a
[simgrid.git] / teshsuite / simdag / network / p2p / test_latency_bound.c
1 /* Latency tests                                                            */
2
3 /* Copyright (c) 2007, 2009-2011, 2013-2014. The SimGrid Team.
4  * All rights reserved.                                                     */
5
6 /* This program is free software; you can redistribute it and/or modify it
7  * under the terms of the license (GNU LGPL) which comes with this package. */
8
9 #include <stdio.h>
10 #include <stdlib.h>
11
12 #include "simdag/simdag.h"
13
14 #define TASK_NUM 3
15
16 /**
17  * 3 tasks send 1 byte in parallel 
18  * 3 flows exceed bandwidth
19  * should be 10001.5
20  * because the max tcp win size is 20000
21  * 
22  * @todo@ test assumes that max tcp win size is 20000
23  * assert this
24  */
25
26 int main(int argc, char **argv)
27 {
28   int i;
29   double time;
30   double communication_amount[] = { 0.0, 1.0, 0.0, 0.0 };
31   double no_cost[] = { 0.0, 0.0 };
32   xbt_dynar_t ret;
33
34   SD_task_t root;
35   SD_task_t task[TASK_NUM];
36
37   SD_init(&argc, argv);
38   SD_create_environment(argv[1]);
39
40   // xbt_assert( check max tcp win size, "MAX TCP WIN SIZE is 20000");
41
42   root = SD_task_create("Root", NULL, 1.0);
43   SD_task_schedule(root, 1, SD_workstation_get_list(), no_cost, no_cost,
44                    -1.0);
45
46   for (i = 0; i < TASK_NUM; i++) {
47     task[i] = SD_task_create("Comm", NULL, 1.0);
48     SD_task_schedule(task[i], 2, SD_workstation_get_list(), no_cost,
49                      communication_amount, -1.0);
50     SD_task_dependency_add(NULL, NULL, root, task[i]);
51   }
52
53   ret = SD_simulate(-1.0);
54   xbt_dynar_free(&ret);
55
56   time = SD_get_clock();
57
58   printf("%g\n", time);
59   fflush(stdout);
60
61   for (i = 0; i < TASK_NUM; i++) {
62     SD_task_destroy(task[i]);
63   }
64   SD_task_destroy(root);
65
66   SD_exit();
67
68   return 0;
69 }