Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add c and tesh files for the new test
authorPaul Bédaride <paul.bedaride@gmail.com>
Fri, 31 Jan 2014 15:43:48 +0000 (16:43 +0100)
committerPaul Bédaride <paul.bedaride@gmail.com>
Fri, 31 Jan 2014 15:43:48 +0000 (16:43 +0100)
examples/msg/cloud/two_tasks_vm.c [new file with mode: 0644]
examples/msg/cloud/two_tasks_vm.tesh [new file with mode: 0644]

diff --git a/examples/msg/cloud/two_tasks_vm.c b/examples/msg/cloud/two_tasks_vm.c
new file mode 100644 (file)
index 0000000..a4c1017
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ * vm_bug.c
+ *
+ *  Created on: Jan 30, 2014
+ *      Author: bedaride
+ */
+
+#include <stdio.h>
+#include "msg/msg.h"
+#include "xbt/sysdep.h"
+
+#include "xbt/log.h"
+#include "xbt/asserts.h"
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
+                             "Messages specific for this msg example");
+
+msg_task_t atask = NULL;
+
+static int computation_fun(int argc, char *argv[])
+{
+  const char *pr_name = MSG_process_get_name(MSG_process_self());
+  const char *host_name = MSG_host_get_name(MSG_host_self());
+  double clock_sta, clock_end;
+  atask = MSG_task_create("Task1", 1e9, 1e9, NULL);
+  clock_sta = MSG_get_clock();
+  XBT_INFO("%s:%s task 1 created %g", host_name, pr_name, clock_sta);
+  MSG_task_execute(atask);
+  clock_end = MSG_get_clock();
+
+  XBT_INFO("%s:%s task 1 executed %g", host_name, pr_name, clock_end - clock_sta);
+
+  MSG_task_destroy(atask);
+  atask = NULL;
+
+  MSG_process_sleep(1);
+
+  atask = MSG_task_create("Task2", 1e10, 1e10, NULL);
+
+  clock_sta = MSG_get_clock();
+  XBT_INFO("%s:%s task 2 created %g", host_name, pr_name, clock_sta);
+  MSG_task_execute(atask);
+  clock_end = MSG_get_clock();
+
+  XBT_INFO("%s:%s task 2 executed %g", host_name, pr_name, clock_end - clock_sta);
+
+  MSG_task_destroy(atask);
+  atask = NULL;
+
+  return 0;
+}
+
+static void launch_computation_worker(msg_host_t host)
+{
+  const char *pr_name = "compute";
+  char **argv = xbt_new(char *, 2);
+  argv[0] = xbt_strdup(pr_name);
+  argv[1] = NULL;
+
+  MSG_process_create_with_arguments(pr_name, computation_fun, NULL, host, 1, argv);
+}
+
+static int master_main(int argc, char *argv[])
+{
+  xbt_dynar_t hosts_dynar = MSG_hosts_as_dynar();
+  msg_host_t pm0 = xbt_dynar_get_as(hosts_dynar, 0, msg_host_t);
+  msg_vm_t vm0;
+  vm0 = MSG_vm_create_core(pm0, "VM0");
+
+  //MSG_process_sleep(1);
+
+  launch_computation_worker(pm0);
+
+  while(MSG_get_clock()<100) {
+       if (atask != NULL)
+         XBT_INFO("aTask remaining duration: %g", MSG_task_get_remaining_computation(atask));
+       MSG_process_sleep(1);
+  }
+
+  MSG_process_sleep(10000);
+  return 1;
+}
+
+static void launch_master(msg_host_t host)
+{
+  const char *pr_name = "master_";
+  char **argv = xbt_new(char *, 2);
+  argv[0] = xbt_strdup(pr_name);
+  argv[1] = NULL;
+
+  MSG_process_create_with_arguments(pr_name, master_main, NULL, host, 1, argv);
+}
+
+int main(int argc, char *argv[]){
+  MSG_init(&argc, argv);
+
+  xbt_assert(argc == 2);
+  MSG_create_environment(argv[1]);
+
+  xbt_dynar_t hosts_dynar = MSG_hosts_as_dynar();
+  msg_host_t pm0 = xbt_dynar_get_as(hosts_dynar, 0, msg_host_t);
+  launch_master(pm0);
+
+  int res = MSG_main();
+  XBT_INFO("Bye (simulation time %g)", MSG_get_clock());
+
+  return !(res == MSG_OK);
+}
+
+
+
+
diff --git a/examples/msg/cloud/two_tasks_vm.tesh b/examples/msg/cloud/two_tasks_vm.tesh
new file mode 100644 (file)
index 0000000..c177793
--- /dev/null
@@ -0,0 +1,110 @@
+#! ./tesh
+
+p Testing a vm with two successive tasks
+
+$ $SG_TEST_EXENV two_tasks_vm$EXEEXT ${srcdir:=.}/simple_plat.xml
+> [0.000000] [surf_vm_workstation/INFO] Create VM(VM0)@PM(PM0) with 0 mounted disks
+> [PM0:compute:(2) 0.000000] [msg_test/INFO] PM0:compute task 1 created 0
+> [PM0:master_:(1) 0.000000] [msg_test/INFO] aTask remaining duration: 1e+09
+> [PM0:master_:(1) 1.000000] [msg_test/INFO] aTask remaining duration: 9e+08
+> [PM0:master_:(1) 2.000000] [msg_test/INFO] aTask remaining duration: 8e+08
+> [PM0:master_:(1) 3.000000] [msg_test/INFO] aTask remaining duration: 7e+08
+> [PM0:master_:(1) 4.000000] [msg_test/INFO] aTask remaining duration: 6e+08
+> [PM0:master_:(1) 5.000000] [msg_test/INFO] aTask remaining duration: 5e+08
+> [PM0:master_:(1) 6.000000] [msg_test/INFO] aTask remaining duration: 4e+08
+> [PM0:master_:(1) 7.000000] [msg_test/INFO] aTask remaining duration: 3e+08
+> [PM0:master_:(1) 8.000000] [msg_test/INFO] aTask remaining duration: 2e+08
+> [PM0:master_:(1) 9.000000] [msg_test/INFO] aTask remaining duration: 1e+08
+> [PM0:compute:(2) 10.000000] [msg_test/INFO] PM0:compute task 1 executed 10
+> [PM0:master_:(1) 10.000000] [msg_test/INFO] aTask remaining duration: 0
+> [PM0:compute:(2) 11.000000] [msg_test/INFO] PM0:compute task 2 created 11
+> [PM0:master_:(1) 12.000000] [msg_test/INFO] aTask remaining duration: 9.9e+09
+> [PM0:master_:(1) 13.000000] [msg_test/INFO] aTask remaining duration: 9.8e+09
+> [PM0:master_:(1) 14.000000] [msg_test/INFO] aTask remaining duration: 9.7e+09
+> [PM0:master_:(1) 15.000000] [msg_test/INFO] aTask remaining duration: 9.6e+09
+> [PM0:master_:(1) 16.000000] [msg_test/INFO] aTask remaining duration: 9.5e+09
+> [PM0:master_:(1) 17.000000] [msg_test/INFO] aTask remaining duration: 9.4e+09
+> [PM0:master_:(1) 18.000000] [msg_test/INFO] aTask remaining duration: 9.3e+09
+> [PM0:master_:(1) 19.000000] [msg_test/INFO] aTask remaining duration: 9.2e+09
+> [PM0:master_:(1) 20.000000] [msg_test/INFO] aTask remaining duration: 9.1e+09
+> [PM0:master_:(1) 21.000000] [msg_test/INFO] aTask remaining duration: 9e+09
+> [PM0:master_:(1) 22.000000] [msg_test/INFO] aTask remaining duration: 8.9e+09
+> [PM0:master_:(1) 23.000000] [msg_test/INFO] aTask remaining duration: 8.8e+09
+> [PM0:master_:(1) 24.000000] [msg_test/INFO] aTask remaining duration: 8.7e+09
+> [PM0:master_:(1) 25.000000] [msg_test/INFO] aTask remaining duration: 8.6e+09
+> [PM0:master_:(1) 26.000000] [msg_test/INFO] aTask remaining duration: 8.5e+09
+> [PM0:master_:(1) 27.000000] [msg_test/INFO] aTask remaining duration: 8.4e+09
+> [PM0:master_:(1) 28.000000] [msg_test/INFO] aTask remaining duration: 8.3e+09
+> [PM0:master_:(1) 29.000000] [msg_test/INFO] aTask remaining duration: 8.2e+09
+> [PM0:master_:(1) 30.000000] [msg_test/INFO] aTask remaining duration: 8.1e+09
+> [PM0:master_:(1) 31.000000] [msg_test/INFO] aTask remaining duration: 8e+09
+> [PM0:master_:(1) 32.000000] [msg_test/INFO] aTask remaining duration: 7.9e+09
+> [PM0:master_:(1) 33.000000] [msg_test/INFO] aTask remaining duration: 7.8e+09
+> [PM0:master_:(1) 34.000000] [msg_test/INFO] aTask remaining duration: 7.7e+09
+> [PM0:master_:(1) 35.000000] [msg_test/INFO] aTask remaining duration: 7.6e+09
+> [PM0:master_:(1) 36.000000] [msg_test/INFO] aTask remaining duration: 7.5e+09
+> [PM0:master_:(1) 37.000000] [msg_test/INFO] aTask remaining duration: 7.4e+09
+> [PM0:master_:(1) 38.000000] [msg_test/INFO] aTask remaining duration: 7.3e+09
+> [PM0:master_:(1) 39.000000] [msg_test/INFO] aTask remaining duration: 7.2e+09
+> [PM0:master_:(1) 40.000000] [msg_test/INFO] aTask remaining duration: 7.1e+09
+> [PM0:master_:(1) 41.000000] [msg_test/INFO] aTask remaining duration: 7e+09
+> [PM0:master_:(1) 42.000000] [msg_test/INFO] aTask remaining duration: 6.9e+09
+> [PM0:master_:(1) 43.000000] [msg_test/INFO] aTask remaining duration: 6.8e+09
+> [PM0:master_:(1) 44.000000] [msg_test/INFO] aTask remaining duration: 6.7e+09
+> [PM0:master_:(1) 45.000000] [msg_test/INFO] aTask remaining duration: 6.6e+09
+> [PM0:master_:(1) 46.000000] [msg_test/INFO] aTask remaining duration: 6.5e+09
+> [PM0:master_:(1) 47.000000] [msg_test/INFO] aTask remaining duration: 6.4e+09
+> [PM0:master_:(1) 48.000000] [msg_test/INFO] aTask remaining duration: 6.3e+09
+> [PM0:master_:(1) 49.000000] [msg_test/INFO] aTask remaining duration: 6.2e+09
+> [PM0:master_:(1) 50.000000] [msg_test/INFO] aTask remaining duration: 6.1e+09
+> [PM0:master_:(1) 51.000000] [msg_test/INFO] aTask remaining duration: 6e+09
+> [PM0:master_:(1) 52.000000] [msg_test/INFO] aTask remaining duration: 5.9e+09
+> [PM0:master_:(1) 53.000000] [msg_test/INFO] aTask remaining duration: 5.8e+09
+> [PM0:master_:(1) 54.000000] [msg_test/INFO] aTask remaining duration: 5.7e+09
+> [PM0:master_:(1) 55.000000] [msg_test/INFO] aTask remaining duration: 5.6e+09
+> [PM0:master_:(1) 56.000000] [msg_test/INFO] aTask remaining duration: 5.5e+09
+> [PM0:master_:(1) 57.000000] [msg_test/INFO] aTask remaining duration: 5.4e+09
+> [PM0:master_:(1) 58.000000] [msg_test/INFO] aTask remaining duration: 5.3e+09
+> [PM0:master_:(1) 59.000000] [msg_test/INFO] aTask remaining duration: 5.2e+09
+> [PM0:master_:(1) 60.000000] [msg_test/INFO] aTask remaining duration: 5.1e+09
+> [PM0:master_:(1) 61.000000] [msg_test/INFO] aTask remaining duration: 5e+09
+> [PM0:master_:(1) 62.000000] [msg_test/INFO] aTask remaining duration: 4.9e+09
+> [PM0:master_:(1) 63.000000] [msg_test/INFO] aTask remaining duration: 4.8e+09
+> [PM0:master_:(1) 64.000000] [msg_test/INFO] aTask remaining duration: 4.7e+09
+> [PM0:master_:(1) 65.000000] [msg_test/INFO] aTask remaining duration: 4.6e+09
+> [PM0:master_:(1) 66.000000] [msg_test/INFO] aTask remaining duration: 4.5e+09
+> [PM0:master_:(1) 67.000000] [msg_test/INFO] aTask remaining duration: 4.4e+09
+> [PM0:master_:(1) 68.000000] [msg_test/INFO] aTask remaining duration: 4.3e+09
+> [PM0:master_:(1) 69.000000] [msg_test/INFO] aTask remaining duration: 4.2e+09
+> [PM0:master_:(1) 70.000000] [msg_test/INFO] aTask remaining duration: 4.1e+09
+> [PM0:master_:(1) 71.000000] [msg_test/INFO] aTask remaining duration: 4e+09
+> [PM0:master_:(1) 72.000000] [msg_test/INFO] aTask remaining duration: 3.9e+09
+> [PM0:master_:(1) 73.000000] [msg_test/INFO] aTask remaining duration: 3.8e+09
+> [PM0:master_:(1) 74.000000] [msg_test/INFO] aTask remaining duration: 3.7e+09
+> [PM0:master_:(1) 75.000000] [msg_test/INFO] aTask remaining duration: 3.6e+09
+> [PM0:master_:(1) 76.000000] [msg_test/INFO] aTask remaining duration: 3.5e+09
+> [PM0:master_:(1) 77.000000] [msg_test/INFO] aTask remaining duration: 3.4e+09
+> [PM0:master_:(1) 78.000000] [msg_test/INFO] aTask remaining duration: 3.3e+09
+> [PM0:master_:(1) 79.000000] [msg_test/INFO] aTask remaining duration: 3.2e+09
+> [PM0:master_:(1) 80.000000] [msg_test/INFO] aTask remaining duration: 3.1e+09
+> [PM0:master_:(1) 81.000000] [msg_test/INFO] aTask remaining duration: 3e+09
+> [PM0:master_:(1) 82.000000] [msg_test/INFO] aTask remaining duration: 2.9e+09
+> [PM0:master_:(1) 83.000000] [msg_test/INFO] aTask remaining duration: 2.8e+09
+> [PM0:master_:(1) 84.000000] [msg_test/INFO] aTask remaining duration: 2.7e+09
+> [PM0:master_:(1) 85.000000] [msg_test/INFO] aTask remaining duration: 2.6e+09
+> [PM0:master_:(1) 86.000000] [msg_test/INFO] aTask remaining duration: 2.5e+09
+> [PM0:master_:(1) 87.000000] [msg_test/INFO] aTask remaining duration: 2.4e+09
+> [PM0:master_:(1) 88.000000] [msg_test/INFO] aTask remaining duration: 2.3e+09
+> [PM0:master_:(1) 89.000000] [msg_test/INFO] aTask remaining duration: 2.2e+09
+> [PM0:master_:(1) 90.000000] [msg_test/INFO] aTask remaining duration: 2.1e+09
+> [PM0:master_:(1) 91.000000] [msg_test/INFO] aTask remaining duration: 2e+09
+> [PM0:master_:(1) 92.000000] [msg_test/INFO] aTask remaining duration: 1.9e+09
+> [PM0:master_:(1) 93.000000] [msg_test/INFO] aTask remaining duration: 1.8e+09
+> [PM0:master_:(1) 94.000000] [msg_test/INFO] aTask remaining duration: 1.7e+09
+> [PM0:master_:(1) 95.000000] [msg_test/INFO] aTask remaining duration: 1.6e+09
+> [PM0:master_:(1) 96.000000] [msg_test/INFO] aTask remaining duration: 1.5e+09
+> [PM0:master_:(1) 97.000000] [msg_test/INFO] aTask remaining duration: 1.4e+09
+> [PM0:master_:(1) 98.000000] [msg_test/INFO] aTask remaining duration: 1.3e+09
+> [PM0:master_:(1) 99.000000] [msg_test/INFO] aTask remaining duration: 1.2e+09
+> [PM0:compute:(2) 111.000000] [msg_test/INFO] PM0:compute task 2 executed 100
+> [10100.000000] [msg_test/INFO] Bye (simulation time 10100)