Browse Source

FindMatlab: always handle uncaught exception

If runtests('$unittest_file') throws an exception it is ignored. It is
easy to produce such an exception by passing a nonexistent file as
UNITTEST_FILE.

We already handle exceptions if the option NO_UNITTEST_FRAMEWORK is set.
Use the same method to handle exceptions thrown by runtests or by a
custom_Matlab_test_command.

Fixes #16660.
Clemens Buchacher 8 years ago
parent
commit
44c916b4c8
1 changed files with 3 additions and 2 deletions
  1. 3 2
      Modules/MatlabTestsRedirect.cmake

+ 3 - 2
Modules/MatlabTestsRedirect.cmake

@@ -55,11 +55,12 @@ endif()
 
 
 if(no_unittest_framework)
-  set(unittest_to_run "try, ${unittest_file_to_run_name}, catch err, disp('An exception has been thrown during the execution'), disp(err), disp(err.stack), exit(1), end, exit(0)")
+  set(unittest_to_run "${unittest_file_to_run_name}")
 endif()
 
+set(command_to_run "try, ${unittest_to_run}, catch err, disp('An exception has been thrown during the execution'), disp(err), disp(err.stack), exit(1), end, exit(0)")
 set(Matlab_SCRIPT_TO_RUN
-    "addpath(${concat_string}); ${cmd_to_run_before_test}; ${unittest_to_run}"
+    "addpath(${concat_string}); ${cmd_to_run_before_test}; ${command_to_run}"
    )
 # if the working directory is not specified then default
 # to the output_directory because the log file will go there