diff options
Diffstat (limited to 'lib/dialyzer/test/user_tests_SUITE_data/src/broken_dialyzer.erl')
-rw-r--r-- | lib/dialyzer/test/user_tests_SUITE_data/src/broken_dialyzer.erl | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/lib/dialyzer/test/user_tests_SUITE_data/src/broken_dialyzer.erl b/lib/dialyzer/test/user_tests_SUITE_data/src/broken_dialyzer.erl deleted file mode 100644 index fd9a6ada1a..0000000000 --- a/lib/dialyzer/test/user_tests_SUITE_data/src/broken_dialyzer.erl +++ /dev/null @@ -1,130 +0,0 @@ --module(broken_dialyzer). - --export([do_move_next/1]). - --define(ap_indices, 512). --define(dp_indices, 504). - - --record(apR,{a,c=[],n=[],nc=0,nn=0,nl=[]}). --define(apL(L), [#apR{a=A} || A <- L]). - --define(gr, get(my_return_value)). --define(pr(PR), put(my_return_value, PR)). --record(bit,{i,c,n,s}). % index, current, next, state - - -do_move_next({BL,AL}) -> - Max = max(length(BL), length(AL)), - Max2 = max(length(BL)*2, length(AL)), - MoveTo = [A || A <- AL, A#apR.nn < Max, A#apR.nn+A#apR.nc < Max2], - MoveFrom = [A || A <- AL, - (A#apR.nn > Max) orelse (A#apR.nn+A#apR.nc > Max2)], - Unchanged = (AL--MoveTo)--MoveFrom, - {BL1,{AL1,{AL2,AL3}}} = - lists:mapfoldl( - fun(B=#bit{i=I,c=C,s=S,n=Next}, {From,{To,FilledUp}}) - when S==ok;S==lost_replica;S==moved_replica -> - case lists:keysearch(Next,#apR.a,From) of - {value, F=#apR{n=N1,nn=NN1,nc=NC1}} - when (NN1>Max) or (NN1+NC1>Max2) -> - case C of - [] -> - {B, {From,{To,FilledUp}}}; - ShortList -> - T=#apR{a=NewNext,n=N2,nn=NN2} = - find_next(Next,ShortList), - {value, {C,NL_from}} = - lists:keysearch(C,1,F#apR.nl), - {value, {C,NL_to}} = - lists:keysearch(C,1,T#apR.nl), - NewNL_from = lists:keyreplace( - C,1,F#apR.nl,{C,NL_from--[I]}), - NewNL_to = lists:keyreplace( - C,1,T#apR.nl,{C,[I|NL_to]}), - - NewT = T#apR{n=[I|N2],nn=NN2+1, - nl=NewNL_to}, - - {B#bit{n=NewNext, - s = if - S == lost_replica -> - lost_replica; - true -> - moved_replica - end}, - {lists:keyreplace( - Next,#apR.a,From, - F#apR{n=N1--[I],nn=NN1-1,nl=NewNL_from}), - if - (NewT#apR.nn+NewT#apR.nc >= Max2) - or (NewT#apR.nn >= Max) -> - {lists:keydelete(NewNext,#apR.a,To), - [NewT|FilledUp]}; - true -> - {lists:keyreplace( - NewNext,#apR.a,To,NewT), - FilledUp} - end}} - end; - _ -> - {B, {From,{To,FilledUp}}} - end; - (B, A) -> - {B, A} - end, {MoveFrom,{MoveTo,[]}},BL), - {BL1,Unchanged++AL1++AL2++AL3}. - -%%% ----------------------------------------------------------------- -%%% find_next/2 -%%% -%%% ------------------------------------------------------------------ - -find_next(Ap,L) -> - hd(catch - lists:foreach( - fun(SelVal) -> - case [ApR || - ApR <- L, - begin - {value,{Ap,NL}} = - lists:keysearch(Ap,1,ApR#apR.nl), - length(NL) =< SelVal - end] of - [] -> - ok; - ShortList -> - throw(ShortList) - end - end, - lists:seq(0,?ap_indices))). - -%%% ----------------------------------------------------------------- -%%% max/2 -%%% -%%% Calculates max number of indices per AP, given number of indices -%%% and number of APs. -%%% ----------------------------------------------------------------- -max(F,S) -> - (F div S) + if - (F rem S) == 0 -> - 0; - true -> - 1 - end. - -%%% ============================================================== -%%% ADMINISTRATIVE INFORMATION -%%% ============================================================== -%%% #Copyright (C) 2005 -%%% by ERICSSON TELECOM AB -%%% S - 125 26 STOCKHOLM -%%% SWEDEN, tel int + 46 8 719 0000 -%%% -%%% The program may be used and/or copied only with the written -%%% permission from ERICSSON TELECOM AB, or in accordance with -%%% the terms and conditions stipulated in the agreement/contract -%%% under which the program has been supplied. -%%% -%%% All rights reserved -%%% |