99 plan(" clean" ) = matlab .buildtool .tasks .CleanTask ;
1010end
1111
12- cnomex = ~HasTag(" exe" ) & ~HasTag(" mex" ) & ~HasTag(" java" ) & ~HasTag(" python" );
12+ cnomex = ~HasTag(" exe" ) & ~HasTag(" mex" ) & ~HasTag(" java" ) & ~HasTag(" java_exe " ) & ~HasTag( " python" );
1313if ispc()
1414 cnomex = cnomex & ~HasTag(" unix" );
1515else
1616 cnomex = cnomex & ~HasTag(" windows" );
1717end
1818
19- % cmex = HasTag("mex");
20-
21- cjava = HasTag(" java" ) & ~HasTag(" exe" );
22-
2319pkg_root = fullfile(plan .RootFolder , " +stdlib" );
2420test_root = fullfile(plan .RootFolder , " test" );
2521
26- if isMATLABReleaseOlderThan(" R2023b" )
27- plan(" test_exe" ) = matlab .buildtool .Task(Actions = @(context ) legacy_test(context , HasTag(" exe" )), Dependencies= " exe" );
28- elseif isMATLABReleaseOlderThan(" R2024b" )
29- plan(" test_exe" ) = matlab .buildtool .tasks .TestTask(test_root , Tag= " exe" , Dependencies= " exe" );
30- end
31-
3222if isMATLABReleaseOlderThan(" R2024b" )
3323
34- plan(" test_java" ) = matlab .buildtool .Task(Actions = @(context ) legacy_test(context , cjava ));
35- plan(" test_main" ) = matlab .buildtool .Task(Actions = @(context ) legacy_test(context , cnomex ));
24+ plan(" test_main" ) = matlab .buildtool .Task(Actions = @(context ) test_main(context , cnomex ));
25+
26+ if isMATLABReleaseOlderThan(' R2023b' )
27+ return
28+ end
29+
30+ plan(" test_java" ) = matlab .buildtool .tasks .TestTask(test_root , Tag= " java" );
31+ plan(" test_exe" ) = matlab .buildtool .tasks .TestTask(test_root , Tag= " exe" , Dependencies= " exe" );
3632
3733elseif isMATLABReleaseOlderThan(" R2025a" )
38- % Matlab == R2024b
39- plan(" test:java" ) = matlab .buildtool .Task(Actions = @(context ) legacy_test(context , cjava ));
40- plan(" test:exe" ) = matlab .buildtool .tasks .TestTask(test_root , Tag= " exe" , Dependencies= " exe" );
41- plan(" test:main" ) = matlab .buildtool .Task(Actions = @(context ) legacy_test(context , cnomex ));
42- % plan("test:mex") = matlab.buildtool.Task(Actions=@(context) legacy_test(context, cmex), Dependencies="mex");
34+
35+ plan(" test:main" ) = matlab .buildtool .Task(Actions = @(context ) test_main(context , cnomex ));
4336
4437else
45- % Matlab >= R2025a
46- plan(" test:exe" ) = matlab .buildtool .tasks .TestTask(test_root , Tag= " exe" , Description= " test subprocess" ,...
47- SourceFiles= [pkg_root , test_root + [" /*.cpp" , " /*.c" , " /*.f90" ]], ...
48- RunOnlyImpactedTests= true ,...
49- Dependencies= " exe" , TestResults= " TestResults_exe.xml" , Strict= true );
50-
51- plan(" test:main" ) = matlab .buildtool .tasks .TestTask(test_root , Description= " Test non-MEX targets" ,...
52- Selector= cnomex , ...
53- SourceFiles= pkg_root , RunOnlyImpactedTests= true ,...
54- TestResults= " TestResults_nomex.xml" , Strict= true );
55-
56- % plan("test:mex") = matlab.buildtool.tasks.TestTask(test_root, Description="Test mex targts",...
57- % Selector=cmex, ...
58- % SourceFiles=[pkg_root, plan.RootFolder + "/src"], RunOnlyImpactedTests=true,...
59- % Dependencies="mex", TestResults="TestResults_mex.xml", Strict=true);
60-
61- plan(" test:java" ) = matlab .buildtool .tasks .TestTask(test_root , Description= " test Java targets" , ...
62- Selector= cjava , ...
63- SourceFiles= pkg_root , RunOnlyImpactedTests= true ,...
64- TestResults= " TestResults_java.xml" , Strict= true );
38+
39+ plan(" test:main" ) = matlab .buildtool .tasks .TestTask(...
40+ test_root , Description= " Test non-MEX targets" ,...
41+ Selector= cnomex , ...
42+ SourceFiles= pkg_root , RunOnlyImpactedTests= true ,...
43+ TestResults= " TestResults_nomex.xml" , Strict= true );
44+
45+ end
46+
47+
48+ if ~isMATLABReleaseOlderThan(' R2024b' )
49+
50+ plan(" test:exe" ) = matlab .buildtool .tasks .TestTask(test_root , Tag= " exe" , Dependencies= " exe" );
51+
52+ plan(" test:python" ) = matlab .buildtool .tasks .TestTask(...
53+ test_root , Description= " test Python targets" , ...
54+ Tag = " python" , ...
55+ TestResults= " TestResults_java.xml" , Strict= true );
56+
57+ plan(" test:java" ) = matlab .buildtool .tasks .TestTask(...
58+ test_root , Description= " test Java targets" , ...
59+ Tag = " java" , ...
60+ TestResults= " TestResults_java.xml" , Strict= true );
61+
62+ plan(" test:java_exe" ) = matlab .buildtool .tasks .TestTask(...
63+ test_root , Description= " test Java exe targets" , ...
64+ Tag = " java_exe" , Dependencies= " exe" , ...
65+ TestResults= " TestResults_java_exe.xml" , Strict= true );
6566
6667 addons = matlab .addons .installedAddons ;
6768 if contains(addons .Name , " Matlab Test" )
6869 plan(" coverage" ) = matlab .buildtool .tasks .TestTask(test_root , ...
6970 Description= " code coverage" , ...
7071 Dependencies= " exe" , ...
7172 SourceFiles= pkg_root , ...
72- Selector= cnomex | HasTag(" java" ) | HasTag(" exe" ) | HasTag(" python" ), ...
7373 Strict= false ).addCodeCoverage(matlabtest .plugins .codecoverage .StandaloneReport(" coverage-report.html" ));
7474 end
7575
76- % plan("clean_mex") = matlab.buildtool.Task(Actions=@clean_mex, Description="Clean only MEX files to enable incremental tests");
7776end
7877
79- if isMATLABReleaseOlderThan(" R2023a" ), return , end
80-
8178srcs = [" stdout_stderr_c.c" , " stdin_cpp.cpp" , " printenv.cpp" , " sleep.cpp" ];
82- exes = [" stdout_stderr_c.exe" , " stdin_cpp.exe" , " printenv.exe" , " sleep.exe" ];
8379if ~isempty(get_compiler(" fortran" ))
8480 srcs = [srcs , " stdout_stderr_fortran.f90" , " stdin_fortran.f90" ];
85- exes = [exes , " stdout_stderr_fortran.exe" , " stdin_fortran.exe" ];
8681end
82+ [~ , exes ] = fileparts(srcs );
83+ exes = exes + " .exe" ;
8784
8885srcs = fullfile(test_root , srcs );
8986exes = fullfile(test_root , exes );
9087
9188plan(" exe" ) = matlab .buildtool .Task(Inputs = srcs , Outputs= exes , Actions= @build_exe , ...
92- Description= " build test exe's for test subprocess " );
89+ Description= " build demo executables for testing java_run " );
9390
9491if ~isMATLABReleaseOlderThan(" R2024a" )
9592 plan(" check" ) = matlab .buildtool .tasks .CodeIssuesTask(plan .RootFolder , ...
9693 IncludeSubfolders= true , ...
9794 WarningThreshold= 0 , Results= " CodeIssues.sarif" );
9895end
9996
100-
101- %% MexTask
102- if ~isMATLABReleaseOlderThan(" R2024b" )
103- % for s = get_mex_sources()
104- % src = s{1};
105- % [~, name] = fileparts(src(1));
106- %
107- % % name of MEX target function is name of first source file
108- % plan("mex:" + name) = matlab.buildtool.tasks.MexTask(src, pkg_root, ...
109- % Description="Build MEX target " + name, ...
110- % Options=get_compiler_options());
111- % end
112- end
113-
114- end
115-
116-
117- % function clean_mex(context)
118- % run(context.Plan, "clean", {"mex"});
119- % end
120-
121-
122- function legacy_test(context , sel )
123- import matlab .unittest .TestSuite
124-
125- suite = TestSuite .fromFolder(fullfile(context .Plan .RootFolder , ' test' ));
126- suite = suite .selectIf(sel );
127-
128- runner = testrunner();
129-
130- r = run(runner , suite );
131-
132- assert(~isempty(r ), " No tests were run" )
133- assertSuccess(r )
13497end
13598
13699
@@ -143,27 +106,3 @@ function publishTask(context)
143106 " https://github.com/geospace-code/matlab-stdlib" , ...
144107 outdir )
145108end
146-
147-
148- function srcs = get_mex_sources(build_all )
149- arguments (Input )
150- build_all (1 ,1 ) logical = false
151- end
152- arguments (Output )
153- srcs cell
154- end
155-
156- srcs = {
157- % "src/remove.cpp", ...
158- % ["src/normalize.cpp", "src/normalize_fs.cpp", "src/pure.cpp"], ...
159- % "src/set_permissions.cpp"
160- };
161-
162- if ~stdlib .has_python() || build_all
163- srcs{end + 1 } = " src/is_char_device.cpp" ;
164- srcs{end + 1 } = [" src/is_admin.cpp" , " src/admin_fs.cpp" ];
165- % srcs{end+1} = "src/disk_available.cpp";
166- % srcs{end+1} = "src/disk_capacity.cpp";
167- end
168-
169- end
0 commit comments