]> granicus.if.org Git - ejabberd/commitdiff
Show received input and expected input in ?recv* macros in case of failure
authorPaweł Chmielowski <pawel@process-one.net>
Wed, 4 Feb 2015 13:42:03 +0000 (14:42 +0100)
committerPaweł Chmielowski <pawel@process-one.net>
Thu, 9 Apr 2015 14:05:26 +0000 (16:05 +0200)
Throwing catch clause error is not that good for finding out what happened

test/suite.erl
test/suite.hrl

index a50bb64dfc16ff059e084774c66a232a3cb3201e..75fb15a7b8d101d4d2dae3e6b1cbfaed55d350c0 100644 (file)
@@ -175,6 +175,9 @@ re_register(Config) ->
     {atomic, ok} = ejabberd_auth:try_register(User, Server, Pass),
     ok.
 
+match_failure(Received, Matches) ->
+    ct:fail("Received input:~n~n~p~n~ndon't match expected patterns:~n~n~p", [Received, Matches]).
+
 recv() ->
     receive
         {'$gen_event', {xmlstreamelement, El}} ->
index 2696201798452c51cd81bdd89a2fb3a5c6a07bdb..31e21ee5f66aa79a6ffa4fb0596380e086a66831 100644 (file)
         (fun() ->
                  case {R1 = recv(), R2 = recv()} of
                      {P1, P2} -> {R1, R2};
-                     {P2, P1} -> {R2, R1}
+                     {P2, P1} -> {R2, R1};
+                     {P1, V1} -> suite:match_failure([V1], [P2]);
+                     {P2, V2} -> suite:match_failure([V2], [P1]);
+                     {V3, V4} -> suite:match_failure([V3, V4], [P1, P2])
                  end
          end)()).
 
@@ -30,7 +33,8 @@
                  case R3 = recv() of
                      P1 -> insert(R3, 1, ?recv2(P2, P3));
                      P2 -> insert(R3, 2, ?recv2(P1, P3));
-                     P3 -> insert(R3, 3, ?recv2(P1, P2))
+                     P3 -> insert(R3, 3, ?recv2(P1, P2));
+                     V -> suite:match_failure([V], [P1, P2, P3])
                  end
          end)()).
 
@@ -40,7 +44,8 @@
                      P1 -> insert(R4, 1, ?recv3(P2, P3, P4));
                      P2 -> insert(R4, 2, ?recv3(P1, P3, P4));
                      P3 -> insert(R4, 3, ?recv3(P1, P2, P4));
-                     P4 -> insert(R4, 4, ?recv3(P1, P2, P3))
+                     P4 -> insert(R4, 4, ?recv3(P1, P2, P3));
+                     V -> suite:match_failure([V], [P1, P2, P3, P4])
                  end
          end)()).
 
@@ -51,7 +56,8 @@
                      P2 -> insert(R5, 2, ?recv4(P1, P3, P4, P5));
                      P3 -> insert(R5, 3, ?recv4(P1, P2, P4, P5));
                      P4 -> insert(R5, 4, ?recv4(P1, P2, P3, P5));
-                     P5 -> insert(R5, 5, ?recv4(P1, P2, P3, P4))
+                     P5 -> insert(R5, 5, ?recv4(P1, P2, P3, P4));
+                     V -> suite:match_failure([V], [P1, P2, P3, P4, P5])
                  end
          end)()).