diff options
Diffstat (limited to 'lib/ssh')
| -rw-r--r-- | lib/ssh/test/ssh_sftp_SUITE.erl | 90 | ||||
| -rw-r--r-- | lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_高兴/f3.txt | 1 | ||||
| -rw-r--r-- | lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_高兴/g四.txt | 1 | 
3 files changed, 74 insertions, 18 deletions
| diff --git a/lib/ssh/test/ssh_sftp_SUITE.erl b/lib/ssh/test/ssh_sftp_SUITE.erl index a95e16a0b3..c3de063c17 100644 --- a/lib/ssh/test/ssh_sftp_SUITE.erl +++ b/lib/ssh/test/ssh_sftp_SUITE.erl @@ -85,7 +85,12 @@ groups() ->       {openssh_server, [], [{group,write_read_tests},  			   {group,remote_tar}]}, -     {remote_tar, [], [create_empty_tar, files_to_tar, big_file_to_tar, files_chunked_to_tar, +     {remote_tar, [], [create_empty_tar,  +		       ascii_filename_ascii_contents_to_tar, +		       ascii_filename_unicode_contents_to_tar, +		       unicode_filename_ascii_contents_to_tar, +		       files_to_tar, +		       big_file_to_tar, files_chunked_to_tar,  		       directory_to_tar, binaries_to_tar, null_crypto_tar,   		       simple_crypto_tar_small, simple_crypto_tar_big,  		       read_tar, read_null_crypto_tar, read_crypto_tar,  @@ -121,23 +126,35 @@ init_per_group(unicode, Config) ->  	    ct:comment("Begin ~p",[grps(Config)]),  	    DataDir = ?config(data_dir, Config),  	    PrivDir = ?config(priv_dir, Config), -	    [{user, "åke高兴"}, -	     {passwd, "ärlig日本じん"}, -	     {data, <<"foobar å 一二三四いちにさんち">>}, -	     {filename, filename:join(PrivDir, "sftp瑞点.txt")}, -	     {testfile, filename:join(PrivDir, "testハンス.txt")}, -	     {linktest, filename:join(PrivDir, "link_test語.txt")}, -	     {tar_filename, filename:join(PrivDir,  "sftp_tar_test一二三.tar")}, -	     {tar_F1_txt, "F一.txt"}, -	     {datadir_tar, filename:join(DataDir,"sftp_tar_test_data_高兴")} -	     | lists:foldl(fun(K,Cf) -> lists:keydelete(K,1,Cf) end,  -			   Config, -			   [user, passwd, data, -			    filename, testfile, linktest, -			    tar_filename, tar_F1_txt, datadir_tar -			   ] -			  ) -	    ]; +	    NewConfig = +		[{user, "åke高兴"}, +		 {passwd, "ärlig日本じん"}, +		 {data, <<"foobar å 一二三四いちにさんち">>}, +		 {filename, filename:join(PrivDir, "sftp瑞点.txt")}, +		 {testfile, filename:join(PrivDir, "testハンス.txt")}, +		 {linktest, filename:join(PrivDir, "link_test語.txt")}, +		 {tar_filename, filename:join(PrivDir,  "sftp_tar_test一二三.tar")}, +		 {tar_F1_txt, "F一.txt"}, +		 {tar_F3_txt, "f3.txt"}, +		 {tar_F4_txt, "g四.txt"}, +		 {datadir_tar, filename:join(DataDir,"sftp_tar_test_data_高兴")} +		 | lists:foldl(fun(K,Cf) -> lists:keydelete(K,1,Cf) end,  +			       Config, +			       [user, passwd, data, +				filename, testfile, linktest, +				tar_filename, tar_F1_txt, datadir_tar +			       ] +			      ) +		], +	    FN = fn(?config(tar_F1_txt,NewConfig), NewConfig), +	    case catch file:read_file(FN) of +		{ok,FN_contents} -> +		    ct:log("Readable file:read_file(~tp) ->~n~tp",[FN,FN_contents]), +		    NewConfig; +		Other -> +		    ct:log("Unreadable file:read_file(~tp) ->~n~p",[FN,Other]), +		    {skip, "Not unicode file reading"} +	    end;  	_ ->  	    {skip, "Not unicode file encoding"} @@ -686,6 +703,43 @@ files_to_tar(Config) ->      chk_tar([F1, "f2.txt"], Config).  %%-------------------------------------------------------------------- +ascii_filename_ascii_contents_to_tar(Config) -> +    ChPid2 = ?config(channel_pid2, Config), +    TarFileName = ?config(tar_filename, Config), +    {ok,Handle} = ssh_sftp:open_tar(ChPid2, TarFileName, [write]), +    ok = erl_tar:add(Handle, fn("f2.txt",Config), "f2.txt", [verbose]), +    ok = erl_tar:close(Handle), +    chk_tar(["f2.txt"], Config). + +%%-------------------------------------------------------------------- +ascii_filename_unicode_contents_to_tar(Config) -> +    case ?config(tar_F3_txt, Config) of +	undefined -> +	    {skip, "Unicode test"}; +	Fn -> +	    ChPid2 = ?config(channel_pid2, Config), +	    TarFileName = ?config(tar_filename, Config), +	    {ok,Handle} = ssh_sftp:open_tar(ChPid2, TarFileName, [write]), +	    ok = erl_tar:add(Handle, fn(Fn,Config), Fn, [verbose]), +	    ok = erl_tar:close(Handle), +	    chk_tar([Fn], Config) +    end. + +%%-------------------------------------------------------------------- +unicode_filename_ascii_contents_to_tar(Config) -> +    case ?config(tar_F4_txt, Config) of +	undefined -> +	    {skip, "Unicode test"}; +	Fn -> +	    ChPid2 = ?config(channel_pid2, Config), +	    TarFileName = ?config(tar_filename, Config), +	    {ok,Handle} = ssh_sftp:open_tar(ChPid2, TarFileName, [write]), +	    ok = erl_tar:add(Handle, fn(Fn,Config), Fn, [verbose]), +	    ok = erl_tar:close(Handle), +	    chk_tar([Fn], Config) +    end. + +%%--------------------------------------------------------------------  big_file_to_tar(Config) ->      ChPid2 = ?config(channel_pid2, Config),      TarFileName = ?config(tar_filename, Config), diff --git a/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_高兴/f3.txt b/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_高兴/f3.txt new file mode 100644 index 0000000000..e6076a05b5 --- /dev/null +++ b/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_高兴/f3.txt @@ -0,0 +1 @@ +你好 diff --git a/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_高兴/g四.txt b/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_高兴/g四.txt new file mode 100644 index 0000000000..d18c6b11fc --- /dev/null +++ b/lib/ssh/test/ssh_sftp_SUITE_data/sftp_tar_test_data_高兴/g四.txt @@ -0,0 +1 @@ +How are you? | 
