Skip to content

Commit 2b8f67d

Browse files
committed
test: is_rosetta
1 parent 55bf52f commit 2b8f67d

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-13
lines changed

+stdlib/is_rosetta.m

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
%% IS_ROSETTA on Apple Silicon via Rosetta
22
%
33
% true if Matlab on Apple Silicon CPU is built for Intel x86_64
4+
%
5+
% "uname -m" reports "x86_64" from within Matlab on Apple Silicon if using Rosetta
46

57
function r = is_rosetta()
6-
r = false;
7-
8-
if ~ismac()
9-
return
10-
end
11-
12-
% uname -m reports "x86_64" from within Matlab on Apple Silicon if using Rosetta
13-
14-
[ret, raw] = system("sysctl -n sysctl.proc_translated");
15-
r = ret == 0 && startsWith(raw, '1');
168

9+
if ismac()
10+
[s, raw] = system("sysctl -n sysctl.proc_translated");
11+
r = s == 0 && startsWith(raw, '1');
12+
else
13+
r = false;
1714
end
1815

1916
%!assert(islogical(is_rosetta()))

octave_build.m

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ function octave_build(overwrite)
1414
fullfile(d, "disk_available.cpp"), ...
1515
fullfile(d, "disk_capacity.cpp"), ...
1616
fullfile(d, "drop_slash.cpp"), ...
17-
fullfile(d, "is_wsl.cpp"), ...
18-
fullfile(d, "is_rosetta.cpp"), ...
1917
fullfile(d, "is_admin.cpp"), ...
2018
fullfile(d, "normalize.cpp"), ...
2119
fullfile(d, "proximate_to.cpp"), ...

test/TestSys.m

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
classdef TestSys < matlab.unittest.TestCase
22

33
properties (TestParameter)
4-
fun = {stdlib.iscygwin, stdlib.isoctave, stdlib.is_rosetta, stdlib.isinteractive, stdlib.has_dotnet, ...
4+
fun = {stdlib.iscygwin, stdlib.isoctave, stdlib.isinteractive, stdlib.has_dotnet, ...
55
stdlib.has_java, stdlib.has_python}
66
fi32 = {stdlib.is_wsl}
77
end
@@ -17,6 +17,14 @@ function test_platform_int32(tc, fi32)
1717
tc.verifyClass(fi32, 'int32')
1818
end
1919

20+
function test_is_rosetta(tc)
21+
if ismac()
22+
tc.verifyClass(stdlib.is_rosetta(), 'logical')
23+
else
24+
tc.verifyFalse(stdlib.is_rosetta(), 'is_rosetta should be false on non-macOS systems')
25+
end
26+
end
27+
2028
function test_dotnet_version(tc)
2129
tc.assumeTrue(stdlib.has_dotnet())
2230
v = stdlib.dotnet_version();

0 commit comments

Comments
 (0)