Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
last changes of Tesh tools
[simgrid.git] / tools / tesh2 / src / fstream.c
index fb0ce0f..2bbaa6e 100644 (file)
@@ -327,7 +327,7 @@ fstream_parse(fstream_t fstream, xbt_os_mutex_t mutex)
                                unit->is_running_suite = 0;\r
                        }\r
                                \r
-                       if(context->command_line)\r
+                       if(context->command_line && !context->is_not_found)\r
                        {\r
                                if(fstream_launch_command(fstream, context, mutex) < 0)\r
                                                break;\r
@@ -374,7 +374,7 @@ fstream_parse(fstream_t fstream, xbt_os_mutex_t mutex)
        }\r
        \r
        /* Check that last command of the file ran well */\r
-       if(context->command_line)\r
+       if(context->command_line && !context->is_not_found)\r
        {\r
                if(fstream_launch_command(fstream, context, mutex) < 0)\r
                        return -1;\r
@@ -1306,9 +1306,21 @@ fstream_process_token(fstream_t fstream, context_t context, xbt_os_mutex_t mutex
                \r
                if(!is_w32_cmd(command_line, fstream->unit->runner->path) && getpath(command_line, &path) < 0)\r
                {\r
+                       command_t command;\r
+\r
                        ERROR3("[%s] `%s' : NOK (%s)", filepos, command_line, error_to_string(ECMDNOTFOUND, 1));\r
                        unit_set_error(fstream->unit, ECMDNOTFOUND, 1, filepos);\r
+\r
+                       context->is_not_found = 1;\r
+                       \r
+                       command = command_new(fstream->unit, context, mutex);\r
+\r
+                       command->status = cs_failed;\r
+                       command->reason = csr_command_not_found;\r
+\r
                        failure(unit);\r
+                       \r
+                       \r
                        return;\r
                }\r
                \r