From d6eb22a8522a1144ada3bda047eb144f3342deb4 Mon Sep 17 00:00:00 2001 From: Emma Smith Zbarsky Date: Mon, 24 Jun 2024 16:36:55 -0400 Subject: [PATCH] Fix SmokeTests for Arrays and Algorithms --- Scripts/Algorithms.mlx | Bin 28486 -> 27515 bytes SoftwareTests/SmokeTests.m | 164 ++++++++++++++++++++----------------- 2 files changed, 88 insertions(+), 76 deletions(-) diff --git a/Scripts/Algorithms.mlx b/Scripts/Algorithms.mlx index b3a4b77aa8e86e02923a5e48f662f1b6ac7d046a..4d59ed65e21e57381feb0c663270cad0ce262362 100644 GIT binary patch delta 9412 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 Running " + Filename); + try + run(fullfile("Scripts",Filename)); + catch ME + if ME.message == MyError + MyErrorMessage = "Expected error."; else - disp("Finished " + myFiles(kTest)) - testCase.results.Passed(kTest) = true; - fprintf(fid,"%s,%s,%s,%s\n",release_version,myFiles(kTest),"passed",testCase.results.Time(kTest)); + MyErrorMessage = ME.message; + testCase.verifyTrue(false,ME.message); + end + end + + % Log the opened figures to the test reports + Figures = findall(groot,'Type','figure'); + Figures = flipud(Figures); + if ~isempty(Figures) + for f = 1:size(Figures,1) + FigDiag = matlab.unittest.diagnostics.FigureDiagnostic(Figures(f)); + log(testCase,1,FigDiag); end end - fclose(fid); - struct2table(testCase.results) - assert(all([testCase.results.Passed])) + close all + end + function SimpleSmokeTest(testCase,Filename) + + % Run the Smoke test + RootFolder = currentProject().RootFolder; + cd(RootFolder) + disp(">> Running " + Filename); + try + run(fullfile("Scripts",Filename)); + catch ME + testCase.verifyTrue(false,ME.message); + end + + % Log the opened figures to the test reports + Figures = findall(groot,'Type','figure'); + Figures = flipud(Figures); + if ~isempty(Figures) + for f = 1:size(Figures,1) + try + FigDiag = matlab.unittest.diagnostics.FigureDiagnostic(Figures(f)); + log(testCase,1,FigDiag); + catch ME + disp("Figures not logged ...") + end + end + end + close all + + end end methods (TestClassTeardown) function closeAllFigure(testCase) close all force % Close figure windows - bdclose all % Close Simulink models end end % methods (TestClassTeardown) -end - -function [flag,MyErrorMessage,time] = SmokeTestMyFile(myFile) -try - disp("Running " + myFile) - tic - run(myFile) - time = toc; -catch ME - time = toc; - if myFile == "Introduction.mlx" - if ME.message == "Unrecognized function or variable 'Monday'." - flag = 0; - MyErrorMessage = "Expected error."; - else - flag = 1; - MyErrorMessage = ME.message; - end - else - flag = 1; - MyErrorMessage = ME.message; - end -end -if ~exist("flag","var") - flag = 0; - MyErrorMessage = ""; -end end \ No newline at end of file