Skip to content

Commit b3a84d7

Browse files
committed
inode: functionalize, test
1 parent 1e73e48 commit b3a84d7

File tree

4 files changed

+16
-5
lines changed

4 files changed

+16
-5
lines changed

+stdlib/+java/inode.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
function i = inode(p)
2+
3+
opt = javaMethod("values", "java.nio.file.LinkOption");
4+
i = javaMethod("getAttribute", "java.nio.file.Files", javaPathObject(p), "unix:ino", opt);
5+
6+
i = uint64(i);
7+
end

+stdlib/+python/inode.m

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
function i = inode(p)
22

33
try
4-
i = uint64(int64(py.os.stat(p).st_ino));
4+
i = int64(py.os.stat(p).st_ino);
55
% int64 first is for Matlab <= R2022a
66
catch e
77
warning(e.identifier, "%s", e.message)
88
i = [];
99
end
10+
11+
i = uint64(i);
12+
end

+stdlib/inode.m

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
i = stdlib.python.inode(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 = javaMethod("getAttribute", "java.nio.file.Files", javaPathObject(p), "unix:ino", opt);
16+
i = stdlib.java.inode(p);
1817
end
1918

2019
if isempty(i)

test/TestDisk.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
Ps = {".", "", "/", getenv("SystemDrive"), "not-exist"}
99
Po = {mfilename("fullpath") + ".m", pwd(), ".", "", tempname()}
1010
device_fun = {@stdlib.device, @stdlib.sys.device, @stdlib.java.device, @stdlib.python.device}
11+
inode_fun = {@stdlib.inode, @stdlib.sys.inode, @stdlib.java.inode, @stdlib.python.inode}
1112
disk_available_fun = {@stdlib.disk_available, @stdlib.sys.disk_available, @stdlib.dotnet.disk_available, @stdlib.java.disk_available, @stdlib.python.disk_available}
1213
disk_capacity_fun = {@stdlib.disk_capacity, @stdlib.sys.disk_capacity, @stdlib.dotnet.disk_capacity, @stdlib.java.disk_capacity, @stdlib.python.disk_capacity}
1314
fst_fun = {@stdlib.filesystem_type, @stdlib.sys.filesystem_type, @stdlib.dotnet.filesystem_type, @stdlib.java.filesystem_type, @stdlib.python.filesystem_type}
@@ -77,9 +78,10 @@ function test_device(tc, device_fun)
7778
end
7879

7980

80-
function test_inode(tc)
81+
function test_inode(tc, inode_fun)
82+
is_capable(tc, inode_fun)
8183

82-
tc.verifyEqual(stdlib.inode("."), stdlib.inode(pwd()))
84+
tc.verifyEqual(inode_fun("."), inode_fun(pwd()))
8385
end
8486

8587

0 commit comments

Comments
 (0)