diff options
Diffstat (limited to 'lib/stdlib/test')
| -rw-r--r-- | lib/stdlib/test/Makefile | 1 | ||||
| -rw-r--r-- | lib/stdlib/test/erl_lint_SUITE.erl | 10 | ||||
| -rw-r--r-- | lib/stdlib/test/erl_pp_SUITE.erl | 20 | ||||
| -rw-r--r-- | lib/stdlib/test/math_SUITE.erl | 92 | ||||
| -rw-r--r-- | lib/stdlib/test/qlc_SUITE.erl | 21 | ||||
| -rw-r--r-- | lib/stdlib/test/shell_SUITE.erl | 7 | 
6 files changed, 132 insertions, 19 deletions
| diff --git a/lib/stdlib/test/Makefile b/lib/stdlib/test/Makefile index 28c35aed55..deac04aa66 100644 --- a/lib/stdlib/test/Makefile +++ b/lib/stdlib/test/Makefile @@ -52,6 +52,7 @@ MODULES= \  	io_proto_SUITE \  	lists_SUITE \  	log_mf_h_SUITE \ +	math_SUITE \  	ms_transform_SUITE \  	proc_lib_SUITE \  	qlc_SUITE \ diff --git a/lib/stdlib/test/erl_lint_SUITE.erl b/lib/stdlib/test/erl_lint_SUITE.erl index d916eb3eef..4ee3950882 100644 --- a/lib/stdlib/test/erl_lint_SUITE.erl +++ b/lib/stdlib/test/erl_lint_SUITE.erl @@ -1554,7 +1554,15 @@ guard(Config) when is_list(Config) ->              [],              {errors,[{1,erl_lint,illegal_guard_expr},                       {2,erl_lint,illegal_guard_expr}], -             []}} +             []}}, +           {guard10, +            <<"is_port(_) -> false. +               t(P) when port(P) -> ok. +            ">>, +            [], +            {error, +	     [{2,erl_lint,{obsolete_guard_overridden,port}}], +	     [{2,erl_lint,{obsolete_guard,{port,1}}}]}}  	  ],      [] = run(Config, Ts1),      ok. diff --git a/lib/stdlib/test/erl_pp_SUITE.erl b/lib/stdlib/test/erl_pp_SUITE.erl index a103f6dc53..13c5662741 100644 --- a/lib/stdlib/test/erl_pp_SUITE.erl +++ b/lib/stdlib/test/erl_pp_SUITE.erl @@ -1166,19 +1166,21 @@ compile(Config, Tests) ->      lists:foldl(F, [], Tests).  compile_file(Config, Test0) -> -    case compile_file(Config, Test0, ['E']) of +    Test = ["-module(erl_pp_test).\n", +	    "-compile(export_all).\n", +	    Test0], +    case compile_file(Config, Test, ['E']) of          {ok, RootFile} ->              File = RootFile ++ ".E",              {ok, Bin0} = file:read_file(File), -            Bin = strip_module_info(Bin0),              %% A very simple check: just try to compile the output. -            case compile_file(Config, Bin, []) of +            case compile_file(Config, Bin0, []) of                  {ok, RootFile2} ->                      File2 = RootFile2 ++ ".E",                      {ok, Bin1} = file:read_file(File2),                      case Bin0 =:= Bin1 of                          true -> -                            test_max_line(binary_to_list(Bin)); +                            test_max_line(binary_to_list(Bin0));                          false ->                              {error, file_contents_modified, {Bin0, Bin1}}                      end; @@ -1189,11 +1191,8 @@ compile_file(Config, Test0) ->              Error      end. -compile_file(Config, Test0, Opts0) -> +compile_file(Config, Test, Opts0) ->      FileName = filename('erl_pp_test.erl', Config), -    Test = list_to_binary(["-module(erl_pp_test). " -                           "-compile(export_all). ", -                           Test0]),      Opts = [export_all,return,nowarn_unused_record,{outdir,?privdir} | Opts0],      ok = file:write_file(FileName, Test),      case compile:file(FileName, Opts) of @@ -1202,11 +1201,6 @@ compile_file(Config, Test0, Opts0) ->          Error -> Error      end. -strip_module_info(Bin) -> -    {match, [{Start,_Len}|_]} = re:run(Bin, "module_info"), -    <<R:Start/binary,_/binary>> = Bin, -    R. -  flat_expr1(Expr0) ->      Expr = erl_parse:new_anno(Expr0),      lists:flatten(erl_pp:expr(Expr)). diff --git a/lib/stdlib/test/math_SUITE.erl b/lib/stdlib/test/math_SUITE.erl new file mode 100644 index 0000000000..2b29e44228 --- /dev/null +++ b/lib/stdlib/test/math_SUITE.erl @@ -0,0 +1,92 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2007-2016. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%%     http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%% +%% %CopyrightEnd% +%% + +-module(math_SUITE). + +-include_lib("common_test/include/ct.hrl"). + +%% Test server specific exports +-export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, +	 init_per_group/2,end_per_group/2, +	 init_per_testcase/2, end_per_testcase/2]). + +%% Test cases +-export([floor_ceil/1]). + + +suite() -> +    [{ct_hooks,[ts_install_cth]}, +     {timetrap,{minutes,1}}]. + +all() -> +    [floor_ceil]. + +groups() -> +    []. + +init_per_suite(Config) -> +    Config. + +end_per_suite(_Config) -> +    ok. + +init_per_group(_GroupName, Config) -> +    Config. + +end_per_group(_GroupName, Config) -> +    Config. + + +init_per_testcase(_Case, Config) -> +    Config. + +end_per_testcase(_Case, _Config) -> +    ok. + +floor_ceil(_Config) -> +    MinusZero = 0.0/(-1.0), +    -43.0 = do_floor_ceil(-42.1), +    -43.0 = do_floor_ceil(-42.7), +    0.0 = do_floor_ceil(MinusZero), +    10.0 = do_floor_ceil(10.1), +    10.0 = do_floor_ceil(10.9), + +    -533.0 = do_floor_ceil(-533.0), +    453555.0 = do_floor_ceil(453555.0), + +    -58.0 = do_floor_ceil(-58), +    777.0 = do_floor_ceil(777), + +    ok. + +do_floor_ceil(Val) -> +    Floor = math:floor(Val), +    Ceil = math:ceil(Val), + +    true = is_float(Floor), +    true = is_float(Ceil), + +    if +	Floor =:= Ceil -> +	    Floor; +	true -> +	    1.0 = Ceil - Floor, +	    Floor +    end. diff --git a/lib/stdlib/test/qlc_SUITE.erl b/lib/stdlib/test/qlc_SUITE.erl index 2bd940020c..8c7d5a5fcf 100644 --- a/lib/stdlib/test/qlc_SUITE.erl +++ b/lib/stdlib/test/qlc_SUITE.erl @@ -58,7 +58,7 @@  -export([   	  badarg/1, nested_qlc/1, unused_var/1, lc/1, fun_clauses/1,  	  filter_var/1, single/1, exported_var/1, generator_vars/1, -	  nomatch/1, errors/1, pattern/1,  +	  nomatch/1, errors/1, pattern/1, overridden_bif/1,  	  eval/1, cursor/1, fold/1, eval_unique/1, eval_cache/1, append/1,   	  evaluator/1, string_to_handle/1, table/1, process_dies/1,  @@ -126,7 +126,7 @@ groups() ->      [{parse_transform, [],        [badarg, nested_qlc, unused_var, lc, fun_clauses,         filter_var, single, exported_var, generator_vars, -       nomatch, errors, pattern]}, +       nomatch, errors, pattern, overridden_bif]},       {evaluation, [],        [eval, cursor, fold, eval_unique, eval_cache, append,         evaluator, string_to_handle, table, process_dies, sort, @@ -468,6 +468,23 @@ pattern(Config) when is_list(Config) ->                           -record(k, {t,v}).\n">>, Ts),      ok. +%% Override a guard BIF with an imported or local function. +overridden_bif(Config) -> +    Ts = [ +	  <<"[2] = qlc:e(qlc:q([P || P <- [1,2,3], port(P)])), +             [10] = qlc:e(qlc:q([P || P <- [0,9,10,11,12], +                                      (is_reference(P) andalso P > 5)])), +             Empty = gb_sets:empty(), Single = gb_sets:singleton(42), +             GbSets = [Empty,Single], +             [Single] = qlc:e(qlc:q([S || S <- GbSets, size(S) =/= 0])) +            ">> +	 ], +    run(Config, "-import(gb_sets, [size/1]). +                 -compile({no_auto_import, [size/1, is_reference/1]}). +                 port(N) -> N rem 2 =:= 0. +                 is_reference(N) -> N rem 10 =:= 0.\n", Ts), +    ok. +  %% eval/2  eval(Config) when is_list(Config) -> diff --git a/lib/stdlib/test/shell_SUITE.erl b/lib/stdlib/test/shell_SUITE.erl index c409a6949b..07eb6772db 100644 --- a/lib/stdlib/test/shell_SUITE.erl +++ b/lib/stdlib/test/shell_SUITE.erl @@ -573,7 +573,7 @@ otp_5327(Config) when is_list(Config) ->          (catch evaluate(<<"<<32/unit:8>>.">>, [])),      ok. -%% OTP-5435. sys_pre_expand not in the path. +%% OTP-5435. compiler application not in the path.  otp_5435(Config) when is_list(Config) ->      true = <<103133:64/float>> =:=          evaluate(<<"<<103133:64/float>> = <<103133:64/float>>.">>, []), @@ -591,8 +591,9 @@ start_node(Name) ->  otp_5435_2() ->      true = code:del_path(compiler), -    %% sys_pre_expand can no longer be found -    %% OTP-5876. But erl_expand_records can! +    %% Make sure record evaluation is not dependent on the compiler +    %% application being in the path. +    %% OTP-5876.      [{attribute,_,record,{bar,_}},ok] =          scan(<<"rd(foo,{bar}),                   rd(bar,{foo = (#foo{})#foo.bar}), | 
