Skip to content

Commit 5b1fe6b

Browse files
committed
test:backend
Best used with all backends disabled to test fallback
1 parent 372b68d commit 5b1fe6b

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed

test/TestBackend.m

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
% These tests are to ensure graceful degradation with missing (or no)
2+
% available backends. Ideally, run this test with all these disabled
3+
% * Java: matlab -nojvm
4+
% * dotnet: setenv('DOTNET_ROOT') right upon starting Matlab on non-Windows system
5+
% * python: seems one needs a Matlab install that never had Python setup.
6+
% * Alternative: install a temporary Python environment, set pyenv to that, then delete that Python install
7+
8+
classdef (SharedTestFixtures={ matlab.unittest.fixtures.PathFixture(fileparts(fileparts(mfilename('fullpath'))))}, ...
9+
TestTags = {'impure'}) ...
10+
TestBackend < matlab.unittest.TestCase
11+
12+
properties
13+
root = fileparts(fileparts(mfilename('fullpath')))
14+
end
15+
16+
methods(TestClassSetup)
17+
function test_dirs(tc)
18+
tc.applyFixture(matlab.unittest.fixtures.WorkingFolderFixture())
19+
end
20+
end
21+
22+
methods (Test)
23+
function test_backend(tc)
24+
import matlab.unittest.constraints.IsSubsetOf
25+
import matlab.unittest.constraints.IsFile
26+
27+
readme = tc.root + "/Readme.md";
28+
tc.assertThat(readme, IsFile)
29+
30+
[i, b] = stdlib.cpu_load();
31+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('cpu_load').backends))
32+
tc.verifyGreaterThan(i, 0)
33+
34+
[i, b] = stdlib.create_symlink(readme, "Readme.lnk");
35+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('create_symlink').backends))
36+
tc.verifyTrue(i)
37+
38+
[i, b] = stdlib.device('.');
39+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('device').backends))
40+
tc.verifyGreaterThan(i, 0)
41+
42+
[i, b] = stdlib.disk_available('.');
43+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('disk_available').backends))
44+
tc.verifyGreaterThan(i, 0)
45+
46+
[i, b] = stdlib.disk_capacity('.');
47+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('disk_capacity').backends))
48+
tc.verifyGreaterThan(i, 0)
49+
50+
[i, b] = stdlib.file_checksum(readme, 'sha256');
51+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('file_checksum').backends))
52+
tc.verifyEqual(strlength(i), 64)
53+
54+
[i, b] = stdlib.filesystem_type('.');
55+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('filesystem_type').backends))
56+
tc.verifyGreaterThan(strlength(i), 0)
57+
58+
[i, b] = stdlib.get_owner('.');
59+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('get_owner').backends))
60+
tc.verifyGreaterThan(strlength(i), 0)
61+
62+
[i, b] = stdlib.get_process_priority();
63+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('get_process_priority').backends))
64+
tc.verifyNotEmpty(i)
65+
66+
[i, b] = stdlib.get_uid();
67+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('get_uid').backends))
68+
tc.verifyGreaterThanOrEqual(i, 0)
69+
70+
[i, b] = stdlib.get_username();
71+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('get_username').backends))
72+
tc.verifyNotEmpty(i)
73+
74+
[i, b] = stdlib.hard_link_count('.');
75+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('hard_link_count').backends))
76+
tc.verifyGreaterThan(i, 0)
77+
78+
[i, b] = stdlib.hostname();
79+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('hostname').backends))
80+
tc.verifyNotEmpty(i)
81+
82+
[i, b] = stdlib.inode(readme);
83+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('inode').backends))
84+
tc.verifyGreaterThan(i, 0)
85+
86+
[i,b] = stdlib.is_admin();
87+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('is_admin').backends))
88+
tc.verifyNotEmpty(i)
89+
90+
[i,b] = stdlib.is_char_device('.');
91+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('is_char_device').backends));
92+
tc.verifyNotEmpty(i);
93+
94+
[i, b] = stdlib.is_dev_drive('.');
95+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('is_dev_drive').backends))
96+
tc.verifyNotEmpty(i)
97+
98+
[i, b] = stdlib.is_mount('.');
99+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('is_mount').backends))
100+
tc.verifyNotEmpty(i)
101+
102+
[i, b] = stdlib.is_removable('.');
103+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('is_removable').backends))
104+
tc.verifyNotEmpty(i)
105+
106+
[i, b] = stdlib.is_symlink(readme);
107+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('is_symlink').backends))
108+
tc.verifyClass(i, 'logical')
109+
tc.verifyNotEmpty(i)
110+
111+
[os, version, b] = stdlib.os_version();
112+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('os_version').backends))
113+
tc.verifyNotEmpty(os)
114+
tc.verifyNotEmpty(version)
115+
116+
[i, b] = stdlib.ram_free();
117+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('ram_free').backends))
118+
tc.verifyGreaterThan(i, 0)
119+
120+
[i, b] = stdlib.ram_total();
121+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('ram_total').backends))
122+
tc.verifyGreaterThan(i, 0)
123+
124+
[i, b] = stdlib.read_symlink('Readme.lnk');
125+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('read_symlink').backends))
126+
tc.verifyThat(i, IsFile)
127+
128+
[i, b] = stdlib.samepath(readme, readme);
129+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('samepath').backends))
130+
tc.verifyTrue(i)
131+
132+
[i, b] = stdlib.set_modtime("nobody", datetime());
133+
tc.assertThat(b, IsSubsetOf(stdlib.Backend('set_modtime').backends))
134+
tc.verifyNotEmpty(i)
135+
136+
137+
end
138+
139+
end
140+
141+
142+
end

0 commit comments

Comments
 (0)