3 #include "xbt/automaton.h"
4 #include "test_snapshot.h"
8 XBT_LOG_NEW_DEFAULT_CATEGORY(test_snapshot, "my log messages");
14 xbt_dynar_t d1 = NULL;
15 xbt_dynar_t d2 = NULL;
27 XBT_INFO("*** Check ***");
29 XBT_INFO("Dynar d1 (%p -> %p) length : %lu", &d1, d1, xbt_dynar_length(d1));
30 unsigned int cursor = 0;
32 xbt_dynar_foreach(d1, cursor, elem){
33 XBT_INFO("Elem in dynar d1 : %s", elem);
36 XBT_INFO("Dynar d1 NULL");
39 XBT_INFO("Dynar d2 (%p -> %p) length : %lu", &d2, d2, xbt_dynar_length(d2));
40 unsigned int cursor = 0;
42 xbt_dynar_foreach(d2, cursor, elem){
43 XBT_INFO("Elem in dynar d2 : %s", elem);
46 XBT_INFO("Dynar d2 NULL");
51 int coordinator(int argc, char *argv[])
57 MSG_task_receive(&task, "coordinator");
58 const char *kind = MSG_task_get_name(task);
62 if (!strcmp(kind, "request")) {
63 char *req = MSG_task_get_data(task);
64 m_task_t answer = MSG_task_create("received", 0, 1000, NULL);
65 MSG_task_send(answer, req);
67 XBT_INFO("End of coordinator");
75 int client(int argc, char *argv[])
77 int my_pid = MSG_process_get_PID(MSG_process_self());
79 char *my_mailbox = bprintf("%s", argv[1]);
83 XBT_INFO("Ask the request");
84 MSG_task_send(MSG_task_create("request", 0, 1000, my_mailbox), "coordinator");
92 MSG_task_receive(&task, my_mailbox);
93 MSG_task_destroy(task);
97 XBT_INFO("*** Update ***");
101 d2 = xbt_dynar_new(sizeof(char *), NULL);
102 XBT_INFO("Dynar d2 : %p -> %p", &d2, d2);
103 char *c2 = strdup("boooooooo");
104 xbt_dynar_push(d2, &c2);
110 MSG_process_sleep(1);
111 MSG_task_send(MSG_task_create("release", 0, 1000, NULL), "coordinator");
115 MSG_process_sleep(my_pid);
123 int main(int argc, char *argv[]) {
125 MSG_init(&argc, argv);
127 d1 = xbt_dynar_new(sizeof(char *), NULL);
128 XBT_DEBUG("Dynar d1 : %p -> %p", &d1, d1);
129 c1 = strdup("coucou");
130 xbt_dynar_push(d1, &c1);
131 xbt_dynar_push(d1, &c1);
133 MSG_config("model-check/property","promela_test_snapshot");
134 MC_automaton_new_propositional_symbol("r", &predR);
135 MC_automaton_new_propositional_symbol("cs", &predCS);
137 MSG_create_environment("../msg_platform.xml");
138 MSG_function_register("coordinator", coordinator);
139 MSG_function_register("client", client);
140 MSG_launch_application("deploy_test_snapshot.xml");