From aa9054e0ea48a127f2aeafcdce1df4d1aec09574 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Wed, 20 Dec 2017 10:33:56 +0100 Subject: Add emacs indention testcase Split the manual testcase and run them in daily tests instead. Easy to run directly as well: (cd ../test; cerl -eval "emacs_SUITE:indent([])") --- lib/tools/test/emacs_SUITE_data/icr | 157 ++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 lib/tools/test/emacs_SUITE_data/icr (limited to 'lib/tools/test/emacs_SUITE_data/icr') diff --git a/lib/tools/test/emacs_SUITE_data/icr b/lib/tools/test/emacs_SUITE_data/icr new file mode 100644 index 0000000000..4be6baba97 --- /dev/null +++ b/lib/tools/test/emacs_SUITE_data/icr @@ -0,0 +1,157 @@ +%% -*- Mode: erlang; indent-tabs-mode: nil -*- +%% Copyright Ericsson AB 2017. All Rights Reserved. + +%%% indentation of if case receive statements + +%%% Not everything in these test are set in stone +%%% better indentation rules can be added but by having +%%% these tests we can see what changes in new implementations +%%% and notice when doing unintentional changes + +indent_if(1, Z) -> + %% If + if Z >= 0 -> + X = 43 div Z, + X; + Z =< 10 -> + X = 43 div Z, + X; + Z == 5 orelse + Z == 7 -> + X = 43 div Z, + X; + is_number(Z), + Z < 32 -> + Z; + is_number(Z); + Z < 32 -> + Z * 32; + true -> + if_works + end; +indent_if(2, Z) -> + %% If (this is broken) + if + Z >= 0 -> + X = 43 div Z, + X + ; Z =< 10 -> + 43 div Z + ; Z == 5 orelse + Z == 7 -> + X = 43 div Z, + X + ; is_number(Z), + Z < 32 -> + Z + ; true -> + if_works + end. + +indent_case(1, Z) -> + %% Case + case {Z, foo, bar} of + {Z,_,_} -> + X = 43 div 4, + foo(X); + {Z,_,_} when + Z =:= 42 -> % line should be indented as a when + X = 43 div 4, + foo(X); + {Z,_,_} + when Z < 10 orelse + Z =:= foo -> % Binary op alignment here !!! + X = 43 div 4, + Bool = Z < 5 orelse % Binary op args align differently after when + Z =:= foo, % and elsewhere ??? + foo(X); + {Z,_,_} + when % when should be indented + Z < 10 % and the guards should follow when + andalso % unsure about how though + true -> + X = 43 div 4, + foo(X) + end; +indent_case(2, Z) -> + %% Case (also broken) + case {Z, foo, bar} of + {Z,_,_} -> + X = 43 div 4, + foo(X) + ; {Z,_,_} when + Z =:= 42 -> % line should be indented as a when + X = 43 div 4, + foo(X) + ; {Z,_,_} + when Z < 10 -> % when should be indented + X = 43 div 4, + foo(X) + ; {Z,_,_} + when % when should be indented + Z < 10 % and the guards should follow when + andalso % unsure about how though + true -> + X = 43 div 4, + foo(X) + end. + +indent_begin(Z) -> + %% Begin + begin + sune, + Z = 74234 + + foo(8456) + + 345 div 43, + Foo = begin + ok, + foo(234), + begin + io:format("Down here\n") + end + end, + {Foo, + bar} + end. + +indent_receive(1) -> + %% receive + receive + {Z,_,_} -> + X = 43 div 4, + foo(X); + Z -> + X = 43 div 4, + foo(X) + end, + ok; +indent_receive(2) -> + receive + {Z,_,_} -> + X = 43 div 4, + foo(X); + Z % added clause + when Z =:= 1 -> % This line should be indented by 2 + X = 43 div 4, + foo(X); + Z when % added clause + Z =:= 2 -> % This line should be indented by 2 + X = 43 div 4, + foo(X); + Z -> + X = 43 div 4, + foo(X) + after infinity -> + foo(X), + asd(X), + 5*43 + end, + ok; +indent_receive() -> + receive + after 10 -> + foo(X), + asd(X), + 5*43 + end, + ok. -- cgit v1.2.3 From 13f1dec0220d44e5178feb52cf076dbdebaa23a0 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Wed, 10 Jan 2018 16:23:05 +0100 Subject: emacs: delimiter first in icr works --- lib/tools/test/emacs_SUITE_data/icr | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'lib/tools/test/emacs_SUITE_data/icr') diff --git a/lib/tools/test/emacs_SUITE_data/icr b/lib/tools/test/emacs_SUITE_data/icr index 4be6baba97..8445c1a74d 100644 --- a/lib/tools/test/emacs_SUITE_data/icr +++ b/lib/tools/test/emacs_SUITE_data/icr @@ -30,21 +30,21 @@ indent_if(1, Z) -> if_works end; indent_if(2, Z) -> - %% If (this is broken) + %% If if Z >= 0 -> X = 43 div Z, X - ; Z =< 10 -> + ; Z =< 10 -> 43 div Z - ; Z == 5 orelse + ; Z == 5 orelse Z == 7 -> X = 43 div Z, X - ; is_number(Z), + ; is_number(Z), Z < 32 -> Z - ; true -> + ; true -> if_works end. @@ -74,20 +74,20 @@ indent_case(1, Z) -> foo(X) end; indent_case(2, Z) -> - %% Case (also broken) + %% Case case {Z, foo, bar} of {Z,_,_} -> X = 43 div 4, foo(X) - ; {Z,_,_} when + ; {Z,_,_} when Z =:= 42 -> % line should be indented as a when X = 43 div 4, foo(X) - ; {Z,_,_} + ; {Z,_,_} when Z < 10 -> % when should be indented X = 43 div 4, foo(X) - ; {Z,_,_} + ; {Z,_,_} when % when should be indented Z < 10 % and the guards should follow when andalso % unsure about how though @@ -119,8 +119,8 @@ indent_receive(1) -> receive {Z,_,_} -> X = 43 div 4, - foo(X); - Z -> + foo(X) + ; Z -> X = 43 div 4, foo(X) end, -- cgit v1.2.3