Skip to content

Commit

Permalink
file_SUITE: Ignore EILSEQ on Darwin in +fnu/latin1 test
Browse files Browse the repository at this point in the history
There's no way to create the file in question, so we may as well
skip the test.
  • Loading branch information
jhogberg committed Mar 29, 2019
1 parent 83fb1f1 commit f263400
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 10 deletions.
3 changes: 3 additions & 0 deletions erts/emulator/beam/erl_posix_str.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@ erl_errno_id(error)
#if defined(EIDRM) && (!defined(EINPROGRESS) || (EIDRM != EINPROGRESS))
case EIDRM: return "eidrm";
#endif
#ifdef EILSEQ
case EILSEQ: return "eilseq";
#endif
#ifdef EINIT
case EINIT: return "einit";
#endif
Expand Down
34 changes: 24 additions & 10 deletions lib/kernel/test/file_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -3744,19 +3744,33 @@ otp_10852(Config) when is_list(Config) ->
ok = rpc_call(Node, read_file, [B]),
ok = rpc_call(Node, make_link, [B,B]),
case rpc_call(Node, make_symlink, [B,B]) of
ok -> ok;
{error, E} when (E =:= enotsup) or (E =:= eperm) ->
{win32,_} = os:type()
{error, eilseq} ->
%% Some versions of OS X refuse to create files with illegal names.
{unix,darwin} = os:type();
{error, eperm} ->
%% The test user might not have permission to create symlinks.
{win32,_} = os:type();
ok ->
ok
end,
ok = rpc_call(Node, delete, [B]),
ok = rpc_call(Node, make_dir, [B]),
case rpc_call(Node, make_dir, [B]) of
{error, eilseq} ->
{unix,darwin} = os:type();
ok ->
ok
end,
ok = rpc_call(Node, del_dir, [B]),
ok = rpc_call(Node, write_file, [B,B]),
{ok, Fd} = rpc_call(Node, open, [B,[read]]),
ok = rpc_call(Node, close, [Fd]),
{ok,0} = rpc_call(Node, copy, [B,B]),
{ok, Fd2, B} = rpc_call(Node, path_open, [["."], B, [read]]),
ok = rpc_call(Node, close, [Fd2]),
case rpc_call(Node, write_file, [B,B]) of
{error, eilseq} ->
{unix,darwin} = os:type();
ok ->
{ok, Fd} = rpc_call(Node, open, [B,[read]]),
ok = rpc_call(Node, close, [Fd]),
{ok,0} = rpc_call(Node, copy, [B,B]),
{ok, Fd2, B} = rpc_call(Node, path_open, [["."], B, [read]]),
ok = rpc_call(Node, close, [Fd2])
end,
true = test_server:stop_node(Node),
ok.

Expand Down

0 comments on commit f263400

Please sign in to comment.