Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add an option to tesh : --cfg
authornavarrop <navarrop@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 6 Jan 2011 12:36:47 +0000 (12:36 +0000)
committernavarrop <navarrop@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 6 Jan 2011 12:36:47 +0000 (12:36 +0000)
examples:

ADD_TEST(msg-icomms-raw  tesh  --cfg simix/context:raw
--setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms
--cd ${CMAKE_BINARY_DIR}/examples/msg/icomms
${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
ADD_TEST(msg-icomms-thread  tesh  --cfg simix/context:thread
--setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms
--cd ${CMAKE_BINARY_DIR}/examples/msg/icomms
${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
ADD_TEST(msg-icomms-ucontext tesh  --cfg simix/context:ucontext
--setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms
--cd ${CMAKE_BINARY_DIR}/examples/msg/icomms
${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)

We can give many cfg to tesh.

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9375 48e7efb5-ca39-0410-a469-dd3cf9ba447f

buildtools/Cmake/AddTests.cmake
tools/tesh/run_context.c
tools/tesh/tesh.c
tools/tesh/tesh.h

index eecd9c4..b8d80e2 100644 (file)
@@ -122,7 +122,9 @@ ADD_TEST(msg-migration                              ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_H
 ADD_TEST(msg-ptask                                     ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg       --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_task/parallel_task.tesh)
 ADD_TEST(msg-priority                          ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg       --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/priority/priority.tesh)
 ADD_TEST(msg-properties                                ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg       --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/properties/msg_prop.tesh)
-ADD_TEST(msg-icomms                            ${CMAKE_BINARY_DIR}/bin/tesh --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms        --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
+ADD_TEST(msg-icomms-raw                        ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:raw            --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
+ADD_TEST(msg-icomms-thread                     ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:thread         --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
+ADD_TEST(msg-icomms-ucontext           ${CMAKE_BINARY_DIR}/bin/tesh --cfg simix/context:ucontext       --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
 ADD_TEST(msg-actions                           ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/actions           --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/actions               actions.tesh)
 ADD_TEST(msg-masterslave-cpu-ti                ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterslave       --cd ${CMAKE_HOME_DIRECTORY}/examples/msg       masterslave/masterslave_cpu_ti.tesh)
 ADD_TEST(msg-trace                                     ${CMAKE_BINARY_DIR}/bin/tesh --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg                   --cd ${CMAKE_HOME_DIRECTORY}/examples/msg       trace/trace.tesh)
index 181b688..b593904 100644 (file)
@@ -302,6 +302,9 @@ void rctx_pushline(const char *filepos, char kind, char *line)
 
     rctx->cmd = xbt_strdup(line);
     rctx->filepos = xbt_strdup(filepos);
+    if(option){
+       rctx->cmd = bprintf("%s %s",rctx->cmd,option);
+    }
     INFO3("[%s] %s%s", filepos, rctx->cmd,
           ((rctx->is_background) ? " (background command)" : ""));
 
index 490e8c2..0a6bbf3 100644 (file)
@@ -194,7 +194,6 @@ int main(int argc, char *argv[])
   int i;
   char *suitename = NULL;
   struct sigaction newact;
-
   xbt_init(&argc, argv);
   rctx_init();
   parse_environ();
@@ -236,6 +235,20 @@ int main(int argc, char *argv[])
       memmove(argv + i, argv + i + 2, (argc - i - 1) * sizeof(char *));
       argc -= 2;
       i -= 2;
+    } else if (!strcmp(argv[i], "--cfg" )) {
+      if (i == argc - 1) {
+            ERROR0("--cfg argument requires an argument");
+            exit(1);
+      }
+      if(!option){ //if option is NULL
+       option = bprintf("--cfg=%s",argv[i+1]);
+      }else{
+       option = bprintf("%s --cfg=%s",option,argv[i+1]);
+      }
+      INFO1("Add option \'--cfg=%s\' to command line",argv[i+1]);
+      memmove(argv + i, argv + i + 2, (argc - i - 1) * sizeof(char *));
+      argc -= 2;
+      i -= 2;
     }
   }
 
@@ -275,5 +288,6 @@ int main(int argc, char *argv[])
 
   rctx_exit();
   xbt_dict_free(&env);
+  xbt_free_f(option);
   return 0;
 }
index f189375..326c1f5 100644 (file)
@@ -24,6 +24,7 @@ const char *signal_name(unsigned int got, char *expected);
 /*** Options ***/
 int timeout_value;              /* child timeout value */
 int sort_len;                   /* length of the prefix to sort */
+char* option;                                  /* cfg for command line */
 #define SORT_LEN_DEFAULT 19
 
 rctx_t rctx;