3 #include "simdag/simdag.h"
6 int main(int argc, char **argv) {
10 printf ("Usage: %s platform_file deployment_file\n", argv[0]);
11 printf ("example: %s msg_platform.xml msg_deployment.xml\n", argv[0]);
17 printf ("Usage: %s platform_file\n", argv[0]);
18 printf ("example: %s msg_platform.xml\n", argv[0]);
22 /* initialisation of SD */
25 /* creation of the environment */
26 char * platform_file = argv[1];
27 SD_create_environment(platform_file);
29 /* creation of the tasks and their dependencies */
30 SD_task_t volatile taskA = SD_task_create("Task A", NULL, 10.0);
31 SD_task_t volatile taskB = SD_task_create("Task B", NULL, 40.0);
32 SD_task_t volatile taskC = SD_task_create("Task C", NULL, 30.0);
34 SD_task_dependency_add(NULL, NULL, taskA, taskB);
35 SD_task_dependency_add(NULL, NULL, taskA, taskC);
40 SD_task_dependency_add(NULL, NULL, taskA, taskA); /* shouldn't work and must raise an exception */
41 xbt_assert0(0, "Hey, I can add a dependency between Task A and Task A!");
47 SD_task_dependency_add(NULL, NULL, taskA, taskB); /* shouldn't work and must raise an exception */
48 xbt_assert0(0, "Oh oh, I can add an already existing dependency!");
53 SD_task_dependency_remove(taskA, taskB);
56 SD_task_dependency_remove(taskC, taskA); /* shouldn't work and must raise an exception */
57 xbt_assert0(0, "Dude, I can remove an unknown dependency!");
63 SD_task_dependency_remove(taskC, taskC); /* shouldn't work and must raise an exception */
64 xbt_assert0(0, "Wow, I can remove a dependency between Task C and itself!");
68 /* if everything is ok, no exception is forwarded or rethrown by main() */
71 SD_task_watch(taskA, SD_SCHEDULED);
72 SD_task_watch(taskA, SD_DONE);
73 SD_task_unwatch(taskA, SD_SCHEDULED);
74 SD_task_watch(taskA, SD_DONE);
75 SD_task_watch(taskA, SD_SCHEDULED);
77 /* let's launch the simulation! */
80 SD_task_destroy(taskA);
81 SD_task_destroy(taskB);
82 SD_task_destroy(taskC);