MSG_process_create_with_arguments("commRX", commRX, NULL, MSG_get_host_by_name("Tremblay"), 1, argvF);
argvF = xbt_new(char*, 2);
argvF[0] = xbt_strdup("commTX");
- MSG_process_create_with_arguments("commTX", commTX, NULL, MSG_get_host_by_name("Jupiter"), 1, argvF);
+ MSG_process_create_with_arguments("commTX", commTX, NULL, jupiter, 1, argvF);
XBT_INFO(" number of processes: %d", MSG_process_get_number());
MSG_process_sleep(10);
XBT_INFO(" Turn Jupiter off");
MSG_host_on(jupiter);
MSG_process_sleep(10);
argvF = xbt_new(char*, 2);
+ argvF[0] = xbt_strdup("commRX");
+ MSG_process_create_with_arguments("commRX", commRX, NULL, jupiter, 1, argvF);
+ argvF = xbt_new(char*, 2);
argvF[0] = xbt_strdup("commTX");
MSG_process_create_with_arguments("commTX", commTX, NULL, MSG_get_host_by_name("Tremblay"), 1, argvF);
- argvF = xbt_new(char*, 2);
- argvF[0] = xbt_strdup("commRX");
- MSG_process_create_with_arguments("commRX", commRX, NULL, MSG_get_host_by_name("Jupiter"), 1, argvF);
+ XBT_INFO(" number of processes: %d", MSG_process_get_number());
+ MSG_process_sleep(10);
+ XBT_INFO(" Turn Jupiter off");
MSG_host_off(jupiter);
- XBT_INFO("Test 4 seems ok, cool !(number of Process : %d, it should be 1", MSG_process_get_number());
+ XBT_INFO("Test 4 seems ok, cool !(number of Process : %d, it should be 2", MSG_process_get_number());
}
test =6;
if (xbt_dynar_member(tests, &test)){
}
-
+ XBT_INFO(" Test done. See you!");
return 0;
}
MSG_task_destroy(task);
}
MSG_task_execute(task);
- XBT_INFO(" I'm done. See you!");
+ XBT_INFO(" Deamon done. See you!");
return 0;
}
$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml ${srcdir:=.}/host_on_off_processes_d.xml 1 --log=no_loc --log=msg.thresh:error --log=surf_maxmin.thresh:error
> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Test 1:
> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Create a process on Jupiter
-> [Jupiter:process_daemon:(2) 0.000000] [msg_test/INFO] Execute deamon
+> [Jupiter:test_daemon:(2) 0.000000] [msg_test/INFO] Execute deamon
> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Turn off Jupiter
> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Test 1 seems ok, cool !(number of Process : 1, it should be 1 (i.e. the Test one))
+> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Test done. See you!
> [10.000000] [msg_test/INFO] Simulation time 10
$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml ${srcdir:=.}/host_on_off_processes_d.xml 2 --log=no_loc --log=msg.thresh:error --log=surf_maxmin.thresh:error
> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Test 2:
> [Tremblay:test_launcher:(1) 0.000000] [msg_test/INFO] Turn off Jupiter
-> [0.000000] [simix_process/WARNING] Cannot launch process 'process_daemon' on failed host 'Jupiter'
+> [0.000000] [simix_process/WARNING] Cannot launch process 'test_daemon' on failed host 'Jupiter'
> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Test 2 does not crash, WTF ?!(number of Process : 1, it should be 1)
> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Ok so let's turn on/off the node to see whether the process is correctly bound to Jupiter
> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] Turn off
> [Tremblay:test_launcher:(1) 10.000000] [msg_test/INFO] sleep
> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] number of Process : 1 it should be 1. The daemon that has been created for test2 has been correctly destroyed....ok at least it looks rigorous, cool ! You just have to disallow the possibility to create a new process on a node when the node is off.)
+> [Tremblay:test_launcher:(1) 20.000000] [msg_test/INFO] Test done. See you!
> [20.000000] [msg_test/INFO] Simulation time 20
$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml ${srcdir:=.}/host_on_off_processes_d.xml 3 --log=no_loc --log=msg.thresh:error --log=surf_maxmin.thresh:error
> [Tremblay:test:(1) 10.000000] [msg_test/INFO] number of processes: 3
> [Tremblay:test:(1) 20.000000] [msg_test/INFO] Turn Jupiter off
> [Tremblay:test:(1) 20.000000] [msg_test/INFO] Test 4 seems ok (number of Process : 2, it should be 1 or 2 if RX has not been satisfied) cool, you can now turn off a node that has a process paused by a sleep call
+> [Tremblay:test:(1) 20.000000] [msg_test/INFO] Test done. See you!
> [Tremblay:commRX:(2) 20.000000] [msg_test/INFO] Receive message: TRANSFERT_FAILURE
> [Tremblay:commRX:(2) 20.000000] [msg_test/INFO] RX Done
> [20.000000] [msg_test/INFO] Simulation time 20
+
+$ ./host_on_off_processes ${srcdir:=.}/../../../examples/platforms/small_platform.xml ${srcdir:=.}/host_on_off_processes_d.xml 4 --log=no_loc --log=msg.thresh:error --log=surf_maxmin.thresh:error
+> [Tremblay:test:(1) 0.000000] [msg_test/INFO] Test 4 (turn off dest during a communication : Create a Process/task to make a communication between Tremblay and Jupiter and turn off Jupiter during the communication
+> [Jupiter:commRX:(2) 10.000000] [msg_test/INFO] Start RX
+> [Tremblay:commTX:(3) 10.000000] [msg_test/INFO] Start TX
+> [Tremblay:test:(1) 10.000000] [msg_test/INFO] number of processes: 3
+> [Tremblay:test:(1) 20.000000] [msg_test/INFO] Turn Jupiter off
+> [Tremblay:test:(1) 20.000000] [msg_test/INFO] Test 4 seems ok, cool !(number of Process : 2, it should be 2
+> [Tremblay:test:(1) 20.000000] [msg_test/INFO] Test done. See you!
+> [Tremblay:commTX:(3) 40.000000] [msg_test/INFO] TX done
+> [40.000000] [msg_test/INFO] Simulation time 40