From b412f30fc9762c807c7b93ac9e308d6b8a70d8e5 Mon Sep 17 00:00:00 2001 From: navarrop Date: Thu, 6 Jan 2011 12:36:47 +0000 Subject: [PATCH] Add an option to tesh : --cfg 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 | 4 +++- tools/tesh/run_context.c | 3 +++ tools/tesh/tesh.c | 16 +++++++++++++++- tools/tesh/tesh.h | 1 + 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/buildtools/Cmake/AddTests.cmake b/buildtools/Cmake/AddTests.cmake index eecd9c48e5..b8d80e228b 100644 --- a/buildtools/Cmake/AddTests.cmake +++ b/buildtools/Cmake/AddTests.cmake @@ -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) diff --git a/tools/tesh/run_context.c b/tools/tesh/run_context.c index 181b688b22..b5939040b8 100644 --- a/tools/tesh/run_context.c +++ b/tools/tesh/run_context.c @@ -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)" : "")); diff --git a/tools/tesh/tesh.c b/tools/tesh/tesh.c index 490e8c2b07..0a6bbf3c6d 100644 --- a/tools/tesh/tesh.c +++ b/tools/tesh/tesh.c @@ -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; } diff --git a/tools/tesh/tesh.h b/tools/tesh/tesh.h index f189375abf..326c1f5515 100644 --- a/tools/tesh/tesh.h +++ b/tools/tesh/tesh.h @@ -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; -- 2.20.1