Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
9556b419297d4d828b8f9f05800ad2acbae37c74
[simgrid.git] / examples / msg / trace / test_trace_integration.c
1 /* Copyright (c) 2009, 2010. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #include <stdio.h>
8 #include <stdlib.h>
9 #include "msg/msg.h"
10 #include "xbt/log.h"
11 #include "xbt/asserts.h"
12
13 XBT_LOG_NEW_DEFAULT_CATEGORY(test_trace_integration,
14                              "Messages specific for this msg example");
15
16 int test_trace(int argc, char *argv[]);
17
18 /** test the trace integration cpu model */
19 int test_trace(int argc, char *argv[])
20 {
21   m_task_t task;
22   double task_comp_size = 2800;
23   double task_prio = 1.0;
24
25   if (argc != 3) {
26     printf
27         ("Wrong number of arguments!\nUsage:\n\t1) task computational size in FLOPS\n\t2 task priority\n");
28     exit(1);
29   }
30
31   task_comp_size = atof(argv[1]);
32   task_prio = atof(argv[2]);
33
34   XBT_INFO("Testing the trace integration cpu model: CpuTI");
35   XBT_INFO("Task size: %lf", task_comp_size);
36   XBT_INFO("Task prio: %lf", task_prio);
37
38   /* Create and execute a single task. */
39   task = MSG_task_create("proc 0", task_comp_size, 0, NULL);
40   MSG_task_set_priority(task, task_prio);
41   MSG_task_execute(task);
42   MSG_task_destroy(task);
43
44   XBT_INFO("Test finished");
45
46
47   return 0;
48 }
49
50 /** Main function */
51 int main(int argc, char *argv[])
52 {
53   MSG_error_t res = MSG_OK;
54
55   /* Verify if the platform xml file was passed by command line. */
56   MSG_global_init(&argc, argv);
57   if (argc < 2) {
58     printf("Usage: %s test_trace_integration_model.xml\n", argv[0]);
59     exit(1);
60   }
61
62   /* Register SimGrid process function. */
63   MSG_function_register("test_trace", test_trace);
64   /* Use the same file for platform and deployment. */
65   MSG_create_environment(argv[1]);
66   MSG_launch_application(argv[1]);
67   /* Run the example. */
68   res = MSG_main();
69
70   MSG_clean();
71
72   if (res == MSG_OK)
73     return 0;
74   else
75     return 1;
76 }