|
11 | 11 | %% Self-test setup |
12 | 12 | plan("clean") = matlab.buildtool.tasks.CleanTask; |
13 | 13 |
|
| 14 | + |
14 | 15 | cnomex = ~HasTag("exe") & ~HasTag("mex"); |
15 | 16 | if isMATLABReleaseOlderThan("R2024b") |
16 | 17 | cnomex = cnomex & ~HasTag("symlink"); |
|
35 | 36 | plan("test:nojavamex") = matlab.buildtool.Task(Actions=@(context) legacy_test(context, cnojavamex), Dependencies="clean"); |
36 | 37 |
|
37 | 38 | else |
38 | | - % can't use SourceFiles= if "mex" Task was run, even if plan("test").DisableIncremental = true; |
39 | | - % this means incremental tests can't be used with MEX files (as of R2024b) |
40 | | - plan("test:exe") = matlab.buildtool.tasks.TestTask("test", Tag="exe", ... |
| 39 | + plan("test:exe") = matlab.buildtool.tasks.TestTask("test", Tag="exe", Description="test subprocess",... |
| 40 | + SourceFiles=["+stdlib/", "test/*.cpp", "test/*.c", "test/*.f90"], ... |
| 41 | + RunOnlyImpactedTests=true,... |
41 | 42 | Dependencies="exe", TestResults="TestResults_exe.xml", Strict=false); |
42 | 43 |
|
43 | | - plan("test:nomex") = matlab.buildtool.tasks.TestTask("test", ... |
44 | | - Selector=cnomex, ... |
45 | | - Dependencies="clean", TestResults="TestResults_nomex.xml", Strict=false); |
| 44 | + plan("test:nomex") = matlab.buildtool.tasks.TestTask("test", Description="Test non-MEX targets",... |
| 45 | + Selector=cnomex, SourceFiles="+stdlib/", RunOnlyImpactedTests=true,... |
| 46 | + dependencies="clean_mex", TestResults="TestResults_nomex.xml", Strict=false); |
46 | 47 |
|
47 | | - plan("test:mex") = matlab.buildtool.tasks.TestTask("test", ... |
48 | | - Selector=cmex, ... |
| 48 | + plan("test:mex") = matlab.buildtool.tasks.TestTask("test", Description="Test mex targts",... |
| 49 | + Selector=cmex, SourceFiles=["+stdlib/", "src/"], RunOnlyImpactedTests=true,... |
49 | 50 | Dependencies="mex", TestResults="TestResults_mex.xml", Strict=false); |
50 | 51 |
|
51 | | - plan("test:nojavamex") = matlab.buildtool.tasks.TestTask("test", ... |
52 | | - Selector=cnojavamex, ... |
53 | | - Dependencies="clean", TestResults="TestResults_nojavamex.xml", Strict=false); |
| 52 | + plan("test:nojavamex") = matlab.buildtool.tasks.TestTask("test", Description="test non-Java targets", ... |
| 53 | + Selector=cnojavamex, SourceFiles="+stdlib/", RunOnlyImpactedTests=true,... |
| 54 | + Dependencies="clean_mex", TestResults="TestResults_nojavamex.xml", Strict=false); |
54 | 55 |
|
| 56 | + plan("clean_mex") = matlab.buildtool.Task(Actions=@clean_mex, Description="Clean only MEX files to enable incremental tests"); |
55 | 57 | end |
56 | 58 |
|
57 | 59 | td = plan.RootFolder + "/test"; |
|
61 | 63 | srcs = [srcs, td + "/stdout_stderr_fortran.f90", td + "/stdin_fortran.f90"]; |
62 | 64 | exes = [exes, td+"/stdout_stderr_fortran.exe", td+"/stdin_fortran.exe"]; |
63 | 65 | end |
64 | | -plan("exe") = matlab.buildtool.Task(Inputs=srcs, Outputs=exes, Actions=@build_exe); |
| 66 | +plan("exe") = matlab.buildtool.Task(Inputs=srcs, Outputs=exes, Actions=@build_exe, ... |
| 67 | + Description="build test exe's for test subprocess"); |
65 | 68 |
|
66 | 69 | if ~isMATLABReleaseOlderThan("R2024a") |
67 | 70 | plan("check") = matlab.buildtool.tasks.CodeIssuesTask(pkg_name, IncludeSubfolders=true, ... |
|
96 | 99 | mex_deps(end+1) = mex_name; %#ok<AGROW> |
97 | 100 | else |
98 | 101 | plan("mex:" + name) = matlab.buildtool.tasks.MexTask(src, bindir, ... |
| 102 | + Description="Build MEX target " + name, ... |
99 | 103 | Options=[compiler_opt, linker_opt]); |
100 | 104 | end |
101 | 105 | end |
|
107 | 111 | end |
108 | 112 |
|
109 | 113 |
|
| 114 | +function clean_mex(context) |
| 115 | +run(context.Plan, "clean", {"mex"}); |
| 116 | +end |
| 117 | + |
| 118 | + |
110 | 119 | function legacy_mex(context, compiler_opt, linker_opt) |
111 | 120 | bindir = fileparts(context.Task.Outputs.Path); |
112 | 121 | mex(context.Task.Inputs.Path, "-outdir", bindir, compiler_opt{:}, linker_opt) |
|
0 commit comments