Skip to content

Commit d983fab

Browse files
committed
hard_link_count: functionalize, test
1 parent 00a3ea6 commit d983fab

File tree

4 files changed

+15
-8
lines changed

4 files changed

+15
-8
lines changed

+stdlib/+java/hard_link_count.m

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

+stdlib/hard_link_count.m

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,15 @@
1212

1313
c = [];
1414

15-
if stdlib.has_python()
15+
if isunix() && stdlib.has_java()
16+
c = stdlib.java.hard_link_count(p);
17+
elseif stdlib.has_python()
1618
c = stdlib.python.hard_link_count(p);
1719
elseif stdlib.isoctave()
1820
[s, err] = stat(p);
1921
if err == 0
2022
c = s.nlink;
2123
end
22-
elseif isunix() && stdlib.has_java()
23-
opt = javaMethod("values", "java.nio.file.LinkOption");
24-
c = java.nio.file.Files.getAttribute(javaPathObject(p), "unix:nlink", opt);
2524
end
2625

2726
end

test/TestDisk.m

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
inode_fun = {@stdlib.inode, @stdlib.sys.inode, @stdlib.java.inode, @stdlib.python.inode}
1212
disk_available_fun = {@stdlib.disk_available, @stdlib.sys.disk_available, @stdlib.dotnet.disk_available, @stdlib.java.disk_available, @stdlib.python.disk_available}
1313
disk_capacity_fun = {@stdlib.disk_capacity, @stdlib.sys.disk_capacity, @stdlib.dotnet.disk_capacity, @stdlib.java.disk_capacity, @stdlib.python.disk_capacity}
14+
hl_fun = {@stdlib.hard_link_count, @stdlib.java.hard_link_count, @stdlib.python.hard_link_count}
1415
fst_fun = {@stdlib.filesystem_type, @stdlib.sys.filesystem_type, @stdlib.dotnet.filesystem_type, @stdlib.java.filesystem_type, @stdlib.python.filesystem_type}
1516
owner_fun = {@stdlib.get_owner, @stdlib.sys.get_owner, @stdlib.dotnet.get_owner, @stdlib.java.get_owner, @stdlib.python.get_owner}
1617
end
@@ -43,11 +44,12 @@ function test_disk_capacity(tc, Ps, disk_capacity_fun)
4344
end
4445

4546

46-
function test_hard_link_count(tc)
47-
tc.assumeTrue(stdlib.has_python() || (isunix() && stdlib.has_java()))
47+
function test_hard_link_count(tc, hl_fun)
48+
is_capable(tc, hl_fun)
49+
4850
fn = mfilename("fullpath") + ".m";
4951

50-
tc.verifyGreaterThanOrEqual(stdlib.hard_link_count(fn), 1)
52+
tc.verifyGreaterThanOrEqual(hl_fun(fn), 1)
5153
end
5254

5355

test/is_capable.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function is_capable(tc, f)
3030
tc.assumeGreaterThanOrEqual(japi, 11)
3131
end
3232

33-
if endsWith(n, "is_admin")
33+
if endsWith(n, ["hard_link_count", "is_admin"])
3434
tc.assumeTrue(isunix())
3535
end
3636

0 commit comments

Comments
 (0)