diff options
Diffstat (limited to 'lib/stdlib/test')
| -rw-r--r-- | lib/stdlib/test/base64_SUITE.erl | 3 | ||||
| -rw-r--r-- | lib/stdlib/test/binary_module_SUITE.erl | 3 | ||||
| -rw-r--r-- | lib/stdlib/test/erl_eval_SUITE.erl | 1 | ||||
| -rw-r--r-- | lib/stdlib/test/erl_lint_SUITE.erl | 31 | ||||
| -rw-r--r-- | lib/stdlib/test/erl_pp_SUITE.erl | 2 | ||||
| -rw-r--r-- | lib/stdlib/test/erl_scan_SUITE.erl | 13 | ||||
| -rw-r--r-- | lib/stdlib/test/ets_SUITE.erl | 53 | ||||
| -rw-r--r-- | lib/stdlib/test/io_SUITE.erl | 1 | ||||
| -rw-r--r-- | lib/stdlib/test/qlc_SUITE.erl | 12 | ||||
| -rw-r--r-- | lib/stdlib/test/qlc_SUITE_data/join_info_compat.erl | 1 | ||||
| -rw-r--r-- | lib/stdlib/test/re_SUITE.erl | 3 | ||||
| -rw-r--r-- | lib/stdlib/test/re_testoutput1_replacement_test.erl | 3 | ||||
| -rw-r--r-- | lib/stdlib/test/re_testoutput1_split_test.erl | 3 | ||||
| -rw-r--r-- | lib/stdlib/test/shell_SUITE.erl | 5 | ||||
| -rw-r--r-- | lib/stdlib/test/string_SUITE.erl | 3 | 
15 files changed, 103 insertions, 34 deletions
| diff --git a/lib/stdlib/test/base64_SUITE.erl b/lib/stdlib/test/base64_SUITE.erl index b28df94221..b0da6408ff 100644 --- a/lib/stdlib/test/base64_SUITE.erl +++ b/lib/stdlib/test/base64_SUITE.erl @@ -1,8 +1,7 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %%  -%% Copyright Ericsson AB 2007-2012. All Rights Reserved. +%% Copyright Ericsson AB 2007-2013. All Rights Reserved.  %%   %% The contents of this file are subject to the Erlang Public License,  %% Version 1.1, (the "License"); you may not use this file except in diff --git a/lib/stdlib/test/binary_module_SUITE.erl b/lib/stdlib/test/binary_module_SUITE.erl index 9b6f628aa9..d6886ba1e5 100644 --- a/lib/stdlib/test/binary_module_SUITE.erl +++ b/lib/stdlib/test/binary_module_SUITE.erl @@ -1,8 +1,7 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %% -%% Copyright Ericsson AB 1997-2012. All Rights Reserved. +%% Copyright Ericsson AB 1997-2013. All Rights Reserved.  %%  %% The contents of this file are subject to the Erlang Public License,  %% Version 1.1, (the "License"); you may not use this file except in diff --git a/lib/stdlib/test/erl_eval_SUITE.erl b/lib/stdlib/test/erl_eval_SUITE.erl index 18ec17a4bf..7ceef727f1 100644 --- a/lib/stdlib/test/erl_eval_SUITE.erl +++ b/lib/stdlib/test/erl_eval_SUITE.erl @@ -1,4 +1,3 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %%  diff --git a/lib/stdlib/test/erl_lint_SUITE.erl b/lib/stdlib/test/erl_lint_SUITE.erl index f8345559c4..b1236ceedf 100644 --- a/lib/stdlib/test/erl_lint_SUITE.erl +++ b/lib/stdlib/test/erl_lint_SUITE.erl @@ -48,6 +48,7 @@  	  unused_function/1,  	  unsafe_vars/1,unsafe_vars2/1,  	  unsafe_vars_try/1, +	  unsized_binary_in_bin_gen_pattern/1,  	  guard/1, otp_4886/1, otp_4988/1, otp_5091/1, otp_5276/1, otp_5338/1,  	  otp_5362/1, otp_5371/1, otp_7227/1, otp_5494/1, otp_5644/1, otp_5878/1,  	  otp_5917/1, otp_6585/1, otp_6885/1, otp_10436/1, @@ -80,6 +81,7 @@ all() ->      [{group, unused_vars_warn}, export_vars_warn,       shadow_vars, unused_import, unused_function,       unsafe_vars, unsafe_vars2, unsafe_vars_try, guard, +     unsized_binary_in_bin_gen_pattern,       otp_4886, otp_4988, otp_5091, otp_5276, otp_5338,       otp_5362, otp_5371, otp_7227, otp_5494, otp_5644,       otp_5878, otp_5917, otp_6585, otp_6885, otp_10436, export_all, @@ -1079,6 +1081,35 @@ unsafe_vars_try(Config) when is_list(Config) ->          ?line [] = run(Config, Ts),      ok. +unsized_binary_in_bin_gen_pattern(doc) -> +    "Unsized binary fields are forbidden in patterns of bit string generators"; +unsized_binary_in_bin_gen_pattern(suite) -> []; +unsized_binary_in_bin_gen_pattern(Config) when is_list(Config) -> +    Ts = [{unsized_binary_in_bin_gen_pattern, +	   <<"t({bc,binary,Bin}) -> +		  << <<X,Tail/binary>> || <<X,Tail/binary>> <= Bin >>; +	      t({bc,bits,Bin}) -> +		  << <<X,Tail/bits>> || <<X,Tail/bits>> <= Bin >>; +	      t({bc,bitstring,Bin}) -> +		  << <<X,Tail/bits>> || <<X,Tail/bitstring>> <= Bin >>; +	      t({lc,binary,Bin}) -> +		  [ {X,Tail} || <<X,Tail/binary>> <= Bin ]; +	      t({lc,bits,Bin}) -> +		  [ {X,Tail} || <<X,Tail/bits>> <= Bin ]; +	      t({lc,bitstring,Bin}) -> +		  [ {X,Tail} || <<X,Tail/bitstring>> <= Bin ].">>, +	   [], +	   {errors, +	    [{2,erl_lint,unsized_binary_in_bin_gen_pattern}, +	     {4,erl_lint,unsized_binary_in_bin_gen_pattern}, +	     {6,erl_lint,unsized_binary_in_bin_gen_pattern}, +	     {8,erl_lint,unsized_binary_in_bin_gen_pattern}, +	     {10,erl_lint,unsized_binary_in_bin_gen_pattern}, +	     {12,erl_lint,unsized_binary_in_bin_gen_pattern}], +	     []}}], +    [] = run(Config, Ts), +    ok. +  guard(doc) ->      "OTP-4670. Guards, is_record in particular.";  guard(suite) -> []; diff --git a/lib/stdlib/test/erl_pp_SUITE.erl b/lib/stdlib/test/erl_pp_SUITE.erl index 2b7cec87df..70a9d70e5c 100644 --- a/lib/stdlib/test/erl_pp_SUITE.erl +++ b/lib/stdlib/test/erl_pp_SUITE.erl @@ -1091,7 +1091,7 @@ otp_10820(Config) when is_list(Config) ->      C1 = <<"%% coding: utf-8\n -module(any).">>,      ok = do_otp_10820(Config, C1, "+pc latin1"),      ok = do_otp_10820(Config, C1, "+pc unicode"), -    C2 = <<"-module(any).">>, +    C2 = <<"%% coding: latin-1\n -module(any).">>,      ok = do_otp_10820(Config, C2, "+pc latin1"),      ok = do_otp_10820(Config, C2, "+pc unicode"). diff --git a/lib/stdlib/test/erl_scan_SUITE.erl b/lib/stdlib/test/erl_scan_SUITE.erl index 361abbb771..e628f7248d 100644 --- a/lib/stdlib/test/erl_scan_SUITE.erl +++ b/lib/stdlib/test/erl_scan_SUITE.erl @@ -1,4 +1,3 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %% @@ -1065,8 +1064,8 @@ otp_10302(Config) when is_list(Config) ->      {string,0,"str"} = erl_parse:abstract("str"),      {cons,0,       {integer,0,$a}, -     {cons,0,{integer,0,1024},{string,0,"c"}}} = -        erl_parse:abstract("a"++[1024]++"c"), +     {cons,0,{integer,0,55296},{string,0,"c"}}} = +        erl_parse:abstract("a"++[55296]++"c"),      Line = 17,      {integer,Line,1} = erl_parse:abstract(1, Line), @@ -1081,8 +1080,8 @@ otp_10302(Config) when is_list(Config) ->      {string,Line,"str"} = erl_parse:abstract("str", Line),      {cons,Line,       {integer,Line,$a}, -     {cons,Line,{integer,Line,1024},{string,Line,"c"}}} = -        erl_parse:abstract("a"++[1024]++"c", Line), +     {cons,Line,{integer,Line,55296},{string,Line,"c"}}} = +        erl_parse:abstract("a"++[55296]++"c", Line),      Opts1 = [{line,17}],      {integer,Line,1} = erl_parse:abstract(1, Opts1), @@ -1097,8 +1096,8 @@ otp_10302(Config) when is_list(Config) ->      {string,Line,"str"} = erl_parse:abstract("str", Opts1),      {cons,Line,       {integer,Line,$a}, -     {cons,Line,{integer,Line,1024},{string,Line,"c"}}} = -        erl_parse:abstract("a"++[1024]++"c", Opts1), +     {cons,Line,{integer,Line,55296},{string,Line,"c"}}} = +        erl_parse:abstract("a"++[55296]++"c", Opts1),      [begin           {integer,Line,1} = erl_parse:abstract(1, Opts2), diff --git a/lib/stdlib/test/ets_SUITE.erl b/lib/stdlib/test/ets_SUITE.erl index 2b29566942..82c3e7ecaf 100644 --- a/lib/stdlib/test/ets_SUITE.erl +++ b/lib/stdlib/test/ets_SUITE.erl @@ -33,7 +33,7 @@  -export([ match1/1, match2/1, match_object/1, match_object2/1]).  -export([ dups/1, misc1/1, safe_fixtable/1, info/1, tab2list/1]).  -export([ tab2file/1, tab2file2/1, tabfile_ext1/1, -	tabfile_ext2/1, tabfile_ext3/1, tabfile_ext4/1]). +	tabfile_ext2/1, tabfile_ext3/1, tabfile_ext4/1, badfile/1]).  -export([ heavy_lookup/1, heavy_lookup_element/1, heavy_concurrent/1]).  -export([ lookup_element_mult/1]).  -export([]). @@ -171,7 +171,7 @@ groups() ->        [misc1, safe_fixtable, info, dups, tab2list]},       {files, [],        [tab2file, tab2file2, tabfile_ext1, -       tabfile_ext2, tabfile_ext3, tabfile_ext4]}, +       tabfile_ext2, tabfile_ext3, tabfile_ext4, badfile]},       {heavy, [],        [heavy_lookup, heavy_lookup_element, heavy_concurrent]},       {fold, [], @@ -4202,7 +4202,56 @@ tabfile_ext4(Config) when is_list(Config) ->      file:delete(FName),      ok. +badfile(suite) -> +    []; +badfile(doc) -> +    ["Tests that no disk_log is left open when file has been corrupted"]; +badfile(Config) when is_list(Config) -> +    PrivDir = ?config(priv_dir,Config), +    File = filename:join(PrivDir, "badfile"), +    _ = file:delete(File), +    T = ets:new(table, []), +    true = ets:insert(T, [{a,1},{b,2}]), +    ok = ets:tab2file(T, File, []), +    true = ets:delete(T), +    [H0 | Ts ] = get_all_terms(l, File), +    H1 = tuple_to_list(H0), +    H2 = [{K,V} || {K,V} <- H1, K =/= protection], +    H = list_to_tuple(H2), +    ok = file:delete(File), +    write_terms(l, File, [H | Ts]), +    %% All mandatory keys are no longer members of the header +    {error, badfile} = ets:file2tab(File), +    {error, badfile} = ets:tabfile_info(File), +    file:delete(File), +    {[],[]} = disk_log:accessible_logs(), +    ok. + +get_all_terms(Log, File) -> +    {ok, Log} = disk_log:open([{name,Log}, +                               {file, File}, +                               {mode, read_only}]), +    Ts = get_all_terms(Log), +    ok = disk_log:close(Log), +    Ts. + +get_all_terms(Log) -> +    get_all_terms1(Log, start, []). + +get_all_terms1(Log, Cont, Res) -> +    case disk_log:chunk(Log, Cont) of +	{error, _R} -> +            throw(fel); +	{Cont2, Terms} -> +	    get_all_terms1(Log, Cont2, Res ++ Terms); +	eof -> +	    Res +    end. +write_terms(Log, File, Terms) -> +    {ok, Log} = disk_log:open([{name,Log},{file, File},{mode,read_write}]), +    ok = disk_log:log(Log, Terms), +    ok = disk_log:close(Log).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/lib/stdlib/test/io_SUITE.erl b/lib/stdlib/test/io_SUITE.erl index 9f828c6d2d..5a8971c071 100644 --- a/lib/stdlib/test/io_SUITE.erl +++ b/lib/stdlib/test/io_SUITE.erl @@ -1,4 +1,3 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %%  diff --git a/lib/stdlib/test/qlc_SUITE.erl b/lib/stdlib/test/qlc_SUITE.erl index a9ea78a58b..5f9244b479 100644 --- a/lib/stdlib/test/qlc_SUITE.erl +++ b/lib/stdlib/test/qlc_SUITE.erl @@ -2544,7 +2544,7 @@ info(Config) when is_list(Config) ->            ets:delete(E)">>,         <<"Q1 = qlc:q([W || W <- [a,b]]), -          Q2 = qlc:q([Z || Z <- qlc:sort([1,2,300])], unique), +          Q2 = qlc:q([Z || Z <- qlc:sort([55296,56296,57296])], unique),            Q3 = qlc:q([{X,Y} || X <- qlc:keysort([2], [{1,a}]),                                 Y <- qlc:append([Q1, Q2]),                                 X > Y]), @@ -2552,7 +2552,7 @@ info(Config) when is_list(Config) ->             [{generate, P1, {list, [{1,a}]}},              {generate, P2, {append, [{list, [a,b]},                                      {qlc, T2, [{generate, P3, -                                                {sort, {list,[1,2,300]},[]}}], +                                                {sort, {list,[55296,56296,57296]},[]}}],                                       [{cache,ets},{unique,true}]}]}},F],             []} = i(Q3, cache_all),            {tuple, _, [{var,_,'X'}, {var,_,'Y'}]} = binary_to_term(T1), @@ -2562,7 +2562,7 @@ info(Config) when is_list(Config) ->            {var, _, 'Z'} = binary_to_term(T2),            {op, _, '>', {var, _, 'X'}, {var, _, 'Y'}} = binary_to_term(F),            true = binary_to_list(<< -           \"beginV1=qlc:q([Z||Z<-qlc:sort([1,2,300],[])],[{unique,true}]),\" +           \"beginV1=qlc:q([Z||Z<-qlc:sort([55296,56296,57296],[])],[{unique,true}]),\"             \"qlc:q([{X,Y}||X<-[{1,a}],Y<-qlc:append([[a,b],V1]),X>Y])end\"                >>) == format_info(Q3, true)">>, @@ -6607,12 +6607,12 @@ otp_7232(Config) when is_list(Config) ->                  {nil,_}]} =                 qlc:info(qlc:sort(L),{format,abstract_code})">>, -          <<"Q1 = qlc:q([X || X <- [1000,2000]]), +          <<"Q1 = qlc:q([X || X <- [55296,56296]]),               Q = qlc:sort(Q1, {order, fun(A,B)-> A>B end}), -             \"qlc:sort([1000,2000],[{order,fun'-function/0-fun-2-'/2}])\" =  +             \"qlc:sort([55296,56296],[{order,fun'-function/0-fun-2-'/2}])\" =                  format_info(Q, true),               AC = qlc:info(Q, {format, abstract_code}), -             \"qlc:sort([1000,2000], [{order,fun '-function/0-fun-2-'/2}])\" =  +             \"qlc:sort([55296,56296], [{order,fun '-function/0-fun-2-'/2}])\" =                  binary_to_list(iolist_to_binary(erl_pp:expr(AC)))">>,           %% OTP-7234. erl_parse:abstract() handles bit strings diff --git a/lib/stdlib/test/qlc_SUITE_data/join_info_compat.erl b/lib/stdlib/test/qlc_SUITE_data/join_info_compat.erl index a631b9dbcf..56c998f761 100644 --- a/lib/stdlib/test/qlc_SUITE_data/join_info_compat.erl +++ b/lib/stdlib/test/qlc_SUITE_data/join_info_compat.erl @@ -1,4 +1,3 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %% diff --git a/lib/stdlib/test/re_SUITE.erl b/lib/stdlib/test/re_SUITE.erl index 500f5fadb9..c05674b4f8 100644 --- a/lib/stdlib/test/re_SUITE.erl +++ b/lib/stdlib/test/re_SUITE.erl @@ -1,8 +1,7 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %% -%% Copyright Ericsson AB 2008-2012. All Rights Reserved. +%% Copyright Ericsson AB 2008-2013. All Rights Reserved.  %%  %% The contents of this file are subject to the Erlang Public License,  %% Version 1.1, (the "License"); you may not use this file except in diff --git a/lib/stdlib/test/re_testoutput1_replacement_test.erl b/lib/stdlib/test/re_testoutput1_replacement_test.erl index 8f8d8762ad..30ebab277a 100644 --- a/lib/stdlib/test/re_testoutput1_replacement_test.erl +++ b/lib/stdlib/test/re_testoutput1_replacement_test.erl @@ -1,8 +1,7 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %% -%% Copyright Ericsson AB 2008-2012. All Rights Reserved. +%% Copyright Ericsson AB 2008-2013. All Rights Reserved.  %%  %% The contents of this file are subject to the Erlang Public License,  %% Version 1.1, (the "License"); you may not use this file except in diff --git a/lib/stdlib/test/re_testoutput1_split_test.erl b/lib/stdlib/test/re_testoutput1_split_test.erl index 4fc85b95c0..0a7f54f2dc 100644 --- a/lib/stdlib/test/re_testoutput1_split_test.erl +++ b/lib/stdlib/test/re_testoutput1_split_test.erl @@ -1,8 +1,7 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %% -%% Copyright Ericsson AB 2008-2012. All Rights Reserved. +%% Copyright Ericsson AB 2008-2013. All Rights Reserved.  %%  %% The contents of this file are subject to the Erlang Public License,  %% Version 1.1, (the "License"); you may not use this file except in diff --git a/lib/stdlib/test/shell_SUITE.erl b/lib/stdlib/test/shell_SUITE.erl index 3c49aaa103..233ba0764f 100644 --- a/lib/stdlib/test/shell_SUITE.erl +++ b/lib/stdlib/test/shell_SUITE.erl @@ -1,4 +1,3 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %% @@ -2601,9 +2600,9 @@ otp_7232(doc) ->      "OTP-7232. qlc:info() bug.";  otp_7232(suite) -> [];  otp_7232(Config) when is_list(Config) -> -    Info = <<"qlc:info(qlc:sort(qlc:q([X || X <- [1000,2000]]), " +    Info = <<"qlc:info(qlc:sort(qlc:q([X || X <- [55296,56296]]), "               "{order, fun(A,B)-> A>B end})).">>, -    "qlc:sort([1000,2000],\n" +    "qlc:sort([55296,56296],\n"      "         [{order,\n"      "           fun(A, B) ->\n"      "                  A > B\n" diff --git a/lib/stdlib/test/string_SUITE.erl b/lib/stdlib/test/string_SUITE.erl index 96e653985f..fccd1bef95 100644 --- a/lib/stdlib/test/string_SUITE.erl +++ b/lib/stdlib/test/string_SUITE.erl @@ -1,8 +1,7 @@ -%% -*- coding: utf-8 -*-  %%  %% %CopyrightBegin%  %%  -%% Copyright Ericsson AB 2004-2012. All Rights Reserved. +%% Copyright Ericsson AB 2004-2013. All Rights Reserved.  %%   %% The contents of this file are subject to the Erlang Public License,  %% Version 1.1, (the "License"); you may not use this file except in | 
