Skip to content

Commit 78cd022

Browse files
committed
test: by handle
1 parent eaabddc commit 78cd022

File tree

5 files changed

+33
-20
lines changed

5 files changed

+33
-20
lines changed

+stdlib/+java/ram_free.m

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
function bytes = ram_free()
2+
3+
b = javaMethod("getOperatingSystemMXBean", "java.lang.management.ManagementFactory");
4+
5+
if stdlib.java_api() < 14
6+
bytes = b.getFreePhysicalMemorySize();
7+
else
8+
bytes = b.getFreeMemorySize();
9+
end
10+
11+
bytes = uint64(bytes);
12+
13+
end

+stdlib/device.m

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
i = stdlib.dotnet.device(p);
1414
elseif isunix() && stdlib.java_api() >= 11
1515
% Java 1.8 is buggy in some corner cases, so we require at least 11.
16-
opt = javaMethod("values", "java.nio.file.LinkOption");
17-
i = java.nio.file.Files.getAttribute(javaPathObject(p), "unix:dev", opt);
16+
i = stdlib.java.device(p);
1817
end
1918

2019
if isempty(i)

+stdlib/ram_free.m

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
bytes = 0;
2424

2525
if stdlib.has_java()
26-
bytes = ram_free_java();
26+
bytes = stdlib.java.ram_free();
2727
elseif stdlib.has_python()
2828
bytes = stdlib.python.ram_free();
2929
end
@@ -35,18 +35,3 @@
3535
bytes = uint64(bytes);
3636

3737
end
38-
39-
40-
function bytes = ram_free_java()
41-
42-
b = javaMethod("getOperatingSystemMXBean", "java.lang.management.ManagementFactory");
43-
44-
if stdlib.java_api() < 14
45-
bytes = b.getFreePhysicalMemorySize();
46-
else
47-
bytes = b.getFreeMemorySize();
48-
end
49-
50-
end
51-
52-
%!assert(ram_free() > 0)

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ CodeIssues.sarif
33
*.xml
44
*.html
55

6+
release/
67
resources/
78
.buildtool/
89
*.asv

test/TestSys.m

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
properties (TestParameter)
88
fun = {stdlib.isoctave, stdlib.has_dotnet, ...
99
stdlib.has_java, stdlib.has_python}
10+
ram_free_fun = {@stdlib.ram_free, @stdlib.sys.ram_free, @stdlib.java.ram_free, @stdlib.python.ram_free}
1011
end
1112

1213

@@ -115,14 +116,28 @@ function test_ram_total(tc)
115116
end
116117

117118

118-
function test_ram_free(tc)
119+
function test_ram_free(tc, ram_free_fun)
119120
% don't verify less than or equal total due to shaky system measurements
120-
f = stdlib.ram_free();
121+
is_capable(tc, ram_free_fun)
122+
123+
f = ram_free_fun();
121124
tc.verifyGreaterThan(f, 0)
122125
tc.verifyClass(f, 'uint64')
123126
end
124127

125128
end
126129

130+
end
131+
132+
133+
function is_capable(tc, f)
134+
135+
n = func2str(f);
136+
if contains(n, "java")
137+
tc.assumeTrue(stdlib.has_java())
138+
end
139+
if contains(n, "python")
140+
tc.assumeTrue(stdlib.has_python())
141+
end
127142

128143
end

0 commit comments

Comments
 (0)