Skip to content

Commit

Permalink
Merge branch 'ia/ssh/windows-sftp-tests' into maint
Browse files Browse the repository at this point in the history
* ia/ssh/windows-sftp-tests:
  Skip set_attributes test on windows due to known erts bug in file:read_file_info/1
  • Loading branch information
IngelaAndin committed Mar 7, 2012
2 parents 1dafd58 + 6c5153c commit a7714f2
Showing 1 changed file with 46 additions and 39 deletions.
85 changes: 46 additions & 39 deletions lib/ssh/test/ssh_sftpd_SUITE.erl
Expand Up @@ -545,56 +545,60 @@ set_attributes(doc) ->
set_attributes(suite) ->
[];
set_attributes(Config) when is_list(Config) ->
PrivDir = ?config(priv_dir, Config),
FileName = filename:join(PrivDir, "test.txt"),
ReqId = 0,
{Cm, Channel} = ?config(sftp, Config),
case test_server:os_type() of
{win32, _} ->
{skip, "Known error bug in erts file:read_file_info"};
_ ->
PrivDir = ?config(priv_dir, Config),
FileName = filename:join(PrivDir, "test.txt"),
ReqId = 0,
{Cm, Channel} = ?config(sftp, Config),

{ok, FileInfo} = file:read_file_info(FileName),
{ok, FileInfo} = file:read_file_info(FileName),

OrigPermissions = FileInfo#file_info.mode,
Permissions = 8#600, %% User read-write-only
OrigPermissions = FileInfo#file_info.mode,
Permissions = not_default_permissions(),

Flags = ?SSH_FILEXFER_ATTR_PERMISSIONS,
Flags = ?SSH_FILEXFER_ATTR_PERMISSIONS,

Atters = [?uint32(Flags), ?byte(?SSH_FILEXFER_TYPE_REGULAR),
?uint32(Permissions)],
Atters = [?uint32(Flags), ?byte(?SSH_FILEXFER_TYPE_REGULAR),
?uint32(Permissions)],

{ok, <<?SSH_FXP_STATUS, ?UINT32(ReqId),
?UINT32(?SSH_FX_OK), _/binary>>, _} =
set_attributes_file(FileName, Atters, Cm, Channel, ReqId),

{ok, NewFileInfo} = file:read_file_info(FileName),
NewPermissions = NewFileInfo#file_info.mode,

%% Can not test that NewPermissions = Permissions as
%% on Unix platforms, other bits than those listed in the
%% API may be set.
test_server:format("Org: ~p New: ~p~n", [OrigPermissions, NewPermissions]),
true = OrigPermissions =/= NewPermissions,

test_server:format("Try to open the file"),
NewReqId = 2,
{ok, <<?SSH_FXP_HANDLE, ?UINT32(NewReqId), Handle/binary>>, _} =
open_file(FileName, Cm, Channel, NewReqId,
?ACE4_READ_DATA bor ?ACE4_WRITE_ATTRIBUTES,
?SSH_FXF_OPEN_EXISTING),
{ok, <<?SSH_FXP_STATUS, ?UINT32(ReqId),
?UINT32(?SSH_FX_OK), _/binary>>, _} =
set_attributes_file(FileName, Atters, Cm, Channel, ReqId),

NewAtters = [?uint32(Flags), ?byte(?SSH_FILEXFER_TYPE_REGULAR),
?uint32(OrigPermissions)],
{ok, NewFileInfo} = file:read_file_info(FileName),
NewPermissions = NewFileInfo#file_info.mode,

NewReqId1 = 3,
%% Can not test that NewPermissions = Permissions as
%% on Unix platforms, other bits than those listed in the
%% API may be set.
test_server:format("Org: ~p New: ~p~n", [OrigPermissions, NewPermissions]),
true = OrigPermissions =/= NewPermissions,

test_server:format("Set original permissions on the now open file"),
test_server:format("Try to open the file"),
NewReqId = 2,
{ok, <<?SSH_FXP_HANDLE, ?UINT32(NewReqId), Handle/binary>>, _} =
open_file(FileName, Cm, Channel, NewReqId,
?ACE4_READ_DATA bor ?ACE4_WRITE_ATTRIBUTES,
?SSH_FXF_OPEN_EXISTING),

{ok, <<?SSH_FXP_STATUS, ?UINT32(NewReqId1),
?UINT32(?SSH_FX_OK), _/binary>>, _} =
set_attributes_open_file(Handle, NewAtters, Cm, Channel, NewReqId1),
NewAtters = [?uint32(Flags), ?byte(?SSH_FILEXFER_TYPE_REGULAR),
?uint32(OrigPermissions)],

{ok, NewFileInfo1} = file:read_file_info(FileName),
OrigPermissions = NewFileInfo1#file_info.mode,
NewReqId1 = 3,

ok.
test_server:format("Set original permissions on the now open file"),

{ok, <<?SSH_FXP_STATUS, ?UINT32(NewReqId1),
?UINT32(?SSH_FX_OK), _/binary>>, _} =
set_attributes_open_file(Handle, NewAtters, Cm, Channel, NewReqId1),

{ok, NewFileInfo1} = file:read_file_info(FileName),
OrigPermissions = NewFileInfo1#file_info.mode,
ok
end.

%%--------------------------------------------------------------------
ver3_rename_OTP_6352(doc) ->
Expand Down Expand Up @@ -943,3 +947,6 @@ sshd_read_file(Config) when is_list(Config) ->
{ok, Data} = file:read_file(FileName),

ok.

not_default_permissions() ->
8#600. %% User read-write-only

0 comments on commit a7714f2

Please sign in to comment.