Skip to content

Commit a12e4be

Browse files
committed
test:disk_{avail,cap} param fun
1 parent 30cbadd commit a12e4be

File tree

10 files changed

+52
-19
lines changed

10 files changed

+52
-19
lines changed

+stdlib/+dotnet/disk_available.m

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function f = disk_available(p)
2+
3+
f = uint64(0);
4+
5+
if ~stdlib.exists(p), return, end
6+
7+
f = uint64(System.IO.DriveInfo(stdlib.absolute(p)).AvailableFreeSpace());
8+
% https://learn.microsoft.com/en-us/dotnet/api/system.io.driveinfo.availablefreespace
9+
end

+stdlib/+dotnet/disk_capacity.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
function f = disk_capacity(d)
22

3+
f = uint64(0);
4+
5+
if ~stdlib.exists(d), return, end
6+
37
f = uint64(System.IO.DriveInfo(stdlib.absolute(d)).TotalSize());
48
% https://learn.microsoft.com/en-us/dotnet/api/system.io.driveinfo.totalsize
59

+stdlib/+java/disk_available.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function f = disk_available(d)
2+
3+
f = uint64(javaObject("java.io.File", d).getUsableSpace());
4+
5+
end

+stdlib/+python/disk_available.m

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
function f = disk_available(d)
1+
function f = disk_available(p)
2+
3+
f = uint64(0);
4+
5+
if ~stdlib.exists(p), return, end
26

37
try
4-
di = py.shutil.disk_usage(d);
8+
di = py.shutil.disk_usage(p);
59
f = int64(di.free);
610
% int64 first is for Matlab <= R2022a
711
catch e
8-
warning(e.identifier, "disk_available(%s) failed: %s", d, e.message);
12+
warning(e.identifier, "disk_available(%s) failed: %s", p, e.message);
913
f = [];
1014
end
1115

+stdlib/+python/disk_capacity.m

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
function f = disk_capacity(d)
1+
function f = disk_capacity(p)
2+
3+
f = uint64(0);
4+
5+
if ~stdlib.exists(p), return, end
26

37
try
4-
di = py.shutil.disk_usage(d);
8+
di = py.shutil.disk_usage(p);
59
f = int64(di.total);
610
% int64 first is for Matlab <= R2022a
711
catch e
8-
warning(e.identifier, "disk_capacity(%s) failed: %s", d, e.message);
12+
warning(e.identifier, "disk_capacity(%s) failed: %s", p, e.message);
913
f = 0;
1014
end
1115

+stdlib/+sys/disk_available.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
function t = disk_available(p)
22

3+
t = uint64(0);
4+
5+
if ~stdlib.exists(p), return, end
6+
37
if ispc()
48
dl = extractBefore(stdlib.absolute(p), 2);
59
cmd = "pwsh -c (Get-Volume -DriveLetter " + dl + ").SizeRemaining";

+stdlib/+sys/disk_capacity.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
function t = disk_capacity(p)
22

3+
t = uint64(0);
4+
5+
if ~stdlib.exists(p), return, end
6+
37
if ispc()
48
dl = extractBefore(stdlib.absolute(p), 2);
59
cmd = "pwsh -c (Get-Volume -DriveLetter " + dl + ").Size";

+stdlib/disk_available.m

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@
1313
if ~stdlib.exists(d), return, end
1414

1515
if stdlib.has_dotnet()
16-
f = System.IO.DriveInfo(stdlib.absolute(d)).AvailableFreeSpace();
17-
% https://learn.microsoft.com/en-us/dotnet/api/system.io.driveinfo.availablefreespace
16+
f = stdlib.dotnet.disk_available(d);
1817
elseif stdlib.has_java()
19-
f = javaObject("java.io.File", d).getUsableSpace();
18+
f = stdlib.java.disk_available(d);
2019
elseif stdlib.has_python()
2120
f = stdlib.python.disk_available(d);
2221
end

+stdlib/disk_capacity.m

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99

1010
f = uint64(0);
1111

12-
if ~stdlib.exists(d), return, end
13-
1412
if stdlib.has_dotnet()
1513
f = stdlib.dotnet.disk_capacity(d);
1614
elseif stdlib.has_java()

test/TestDisk.m

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,34 @@
88
properties (TestParameter)
99
Ps = {".", "", "/", getenv("SystemDrive"), "not-exist"}
1010
device_fun = {@stdlib.device, @stdlib.sys.device, @stdlib.java.device, @stdlib.python.device}
11+
disk_available_fun = {@stdlib.disk_available, @stdlib.sys.disk_available, @stdlib.dotnet.disk_available, @stdlib.java.disk_available, @stdlib.python.disk_available}
12+
disk_capacity_fun = {@stdlib.disk_capacity, @stdlib.sys.disk_capacity, @stdlib.dotnet.disk_capacity, @stdlib.java.disk_capacity, @stdlib.python.disk_capacity}
1113
end
1214

1315
methods (Test)
1416

15-
function test_disk_available(tc, Ps)
17+
function test_disk_available(tc, Ps, disk_available_fun)
18+
is_capable(tc, disk_available_fun)
1619

1720
zero = uint64(0);
1821

1922
if stdlib.exists(Ps)
20-
tc.verifyGreaterThan(stdlib.disk_available(Ps), zero)
23+
tc.verifyGreaterThan(disk_available_fun(Ps), zero)
2124
else
22-
tc.verifyEqual(stdlib.disk_available(Ps), zero)
25+
tc.verifyEqual(disk_available_fun(Ps), zero)
2326
end
2427
end
2528

2629

27-
function test_disk_capacity(tc, Ps)
30+
function test_disk_capacity(tc, Ps, disk_capacity_fun)
31+
is_capable(tc, disk_capacity_fun)
2832

2933
zero = uint64(0);
3034

3135
if stdlib.exists(Ps)
32-
tc.verifyGreaterThan(stdlib.disk_capacity(Ps), zero)
36+
tc.verifyGreaterThan(disk_capacity_fun(Ps), zero)
3337
else
34-
tc.verifyEqual(stdlib.disk_capacity(Ps), zero)
38+
tc.verifyEqual(disk_capacity_fun(Ps), zero)
3539
end
3640
end
3741

@@ -88,5 +92,3 @@ function test_owner(tc)
8892

8993
end
9094
end
91-
92-

0 commit comments

Comments
 (0)