Skip to content

Commit 598e42e

Browse files
author
José Valim
committed
Tidy up GenEvent docs and test suite
1 parent b93912b commit 598e42e

File tree

6 files changed

+35
-23
lines changed

6 files changed

+35
-23
lines changed

lib/elixir/lib/gen_event.ex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ defmodule GenEvent do
5757
Notifications can be sent to the event manager which will then
5858
invoke `handle_event/2` for each registered handler.
5959
60-
We can add new handlers with `add_handler/4`. Calls can also
60+
We can add new handlers with `add_handler/3`. Calls can also
6161
be made to specific handlers by using `call/3`.
6262
6363
## Callbacks
@@ -447,7 +447,7 @@ defmodule GenEvent do
447447
448448
The return value `reply` is defined in the return value of `handle_call/2`.
449449
If the specified event handler is not installed, the function returns
450-
`{:error, :handler_not_found}`.
450+
`{:error, :not_found}`.
451451
"""
452452
@spec call(manager, handler, term, timeout) :: term | {:error, term}
453453
def call(manager, handler, request, timeout \\ 5000) do
@@ -466,7 +466,7 @@ defmodule GenEvent do
466466
467467
The event manager will call `terminate/2` to terminate the event handler
468468
and return the callback value. If the specified event handler is not
469-
installed, the function returns `{:error, :handler_not_found}`.
469+
installed, the function returns `{:error, :not_found}`.
470470
"""
471471
@spec remove_handler(manager, handler, term) :: term | {:error, term}
472472
def remove_handler(manager, handler, args) do
@@ -894,7 +894,7 @@ defmodule GenEvent do
894894
defp server_call(module, query, handlers, name) do
895895
case :lists.keyfind(module, handler(:id) + 1, handlers) do
896896
false ->
897-
{false, {:error, :handler_not_found}, handlers}
897+
{false, {:error, :not_found}, handlers}
898898
handler ->
899899
case server_call_update(handler, query, name, handlers) do
900900
{{hib, handler}, reply} ->
@@ -1016,7 +1016,7 @@ defmodule GenEvent do
10161016
{:value, handler, handlers} ->
10171017
{do_terminate(handler, args, last_in, name, reason), handlers}
10181018
false ->
1019-
{{:error, :handler_not_found}, handlers}
1019+
{{:error, :not_found}, handlers}
10201020
end
10211021
end
10221022

lib/elixir/test/elixir/gen_event/stream_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ defmodule GenEvent.StreamTest do
147147
Process.flag(:trap_exit, true)
148148
Process.exit(pid, :kill)
149149
assert_receive {:EXIT, ^pid, :killed}, @receive_timeout
150-
assert_receive {:EXIT, ^child,
151-
{:killed, {Enumerable.GenEvent.Stream, :stop, [_,_]}}}, @receive_timeout
150+
assert_receive ({:EXIT, ^child, {stat, {Enumerable.GenEvent.Stream, :stop, [_,_]}}}
151+
when stat in [:killed, :noproc]), @receive_timeout
152152
end
153153

154154
test "stream/2 with manager not alive" do

lib/elixir/test/elixir/gen_event_test.exs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ defmodule GenEventTest do
1818
raise "oops"
1919
end
2020

21-
def init({:swap, {:error, :handler_not_found}}) do
22-
{:error, :handler_not_found_on_swap}
21+
def init({:swap, {:error, :not_found}}) do
22+
{:error, :not_found_on_swap}
2323
end
2424

2525
def init({:swap, parent}) when is_pid(parent) do
@@ -291,15 +291,15 @@ defmodule GenEventTest do
291291
GenEvent.add_mon_handler(pid, ReplyHandler, {self(), false})
292292

293293
assert GenEvent.remove_handler(pid, {ReplyHandler, self()}, :ok) ==
294-
{:error, :handler_not_found}
294+
{:error, :not_found}
295295
assert GenEvent.remove_handler(pid, ReplyHandler, :ok) ==
296296
{:terminate, :ok}
297297
assert_receive {:terminate, :ok}
298298

299299
GenEvent.add_mon_handler(pid, {ReplyHandler, self()}, {self(), false})
300300

301301
assert GenEvent.remove_handler(pid, ReplyHandler, :ok) ==
302-
{:error, :handler_not_found}
302+
{:error, :not_found}
303303
assert {:error, {%RuntimeError{}, _}} =
304304
GenEvent.remove_handler(pid, {ReplyHandler, self()}, :raise)
305305

@@ -326,7 +326,7 @@ defmodule GenEventTest do
326326
# The handler is initialized even when the module does not exist
327327
# on swap. However, in this case, we are returning an error on init.
328328
assert GenEvent.swap_handler(pid, ReplyHandler, :swapped, ReplyHandler, :swap) ==
329-
{:error, :handler_not_found_on_swap}
329+
{:error, :not_found_on_swap}
330330
end
331331

332332
test "notify/2" do
@@ -475,7 +475,7 @@ defmodule GenEventTest do
475475

476476
assert GenEvent.add_handler(pid, DefaultHandler, []) == :ok
477477
assert GenEvent.call(pid, UnknownHandler, :messages) ==
478-
{:error, :handler_not_found}
478+
{:error, :not_found}
479479
assert GenEvent.call(pid, DefaultHandler, :whatever) ==
480480
{:error, {:bad_call, :whatever}}
481481
assert GenEvent.which_handlers(pid) == []

lib/ex_unit/lib/ex_unit/assertions.ex

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -273,19 +273,31 @@ defmodule ExUnit.Assertions do
273273

274274
defp do_assert_receive(expected, timeout, message) do
275275
binary = Macro.to_string(expected)
276-
message = message || "No message matching #{binary}"
276+
277+
pattern =
278+
case expected do
279+
{:when, meta, [left, right]} ->
280+
{:when, meta, [quote(do: unquote(left) = received), right]}
281+
left ->
282+
quote(do: unquote(left) = received)
283+
end
277284

278285
{:receive, meta, args} =
279286
quote do
280287
receive do
281-
unquote(expected) = received -> received
288+
unquote(pattern) ->
289+
received
282290
after
283-
unquote(timeout) ->
284-
flunk(unquote(message) <> ExUnit.Assertions.__mailbox__(self()))
291+
timeout ->
292+
message = unquote(message) || "No message matching #{unquote(binary)} after #{timeout}ms"
293+
flunk(message <> ExUnit.Assertions.__mailbox__(self()))
285294
end
286295
end
287296

288-
{:receive, [{:export_head, true}|meta], args}
297+
quote do
298+
timeout = unquote(timeout)
299+
unquote({:receive, [{:export_head, true}|meta], args})
300+
end
289301
end
290302

291303
@max_mailbox_length 10

lib/ex_unit/test/ex_unit/assertions_test.exs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ defmodule ExUnit.AssertionsTest do
9191
"This should never be tested" = assert_received :hello
9292
rescue
9393
error in [ExUnit.AssertionError] ->
94-
"No message matching :hello. The process mailbox is empty." = error.message
94+
"No message matching :hello after 0ms. The process mailbox is empty." = error.message
9595
end
9696
end
9797

@@ -101,17 +101,17 @@ defmodule ExUnit.AssertionsTest do
101101
"This should never be tested" = assert_received :hello
102102
rescue
103103
error in [ExUnit.AssertionError] ->
104-
"No message matching :hello. Process mailbox:\n{:message, :not_expected, :at_all}" = error.message
104+
"No message matching :hello after 0ms. Process mailbox:\n{:message, :not_expected, :at_all}" = error.message
105105
end
106106
end
107107

108108
test "assert received when different message having more than 10 on mailbox" do
109109
for i <- 1..11, do: send(self, {:message, i})
110110
try do
111-
"This should never be tested" = assert_received :hello
111+
"This should never be tested" = assert_received x when x == :hello
112112
rescue
113113
error in [ExUnit.AssertionError] ->
114-
"No message matching :hello. Process mailbox:\n" <>
114+
"No message matching x when x == :hello after 0ms. Process mailbox:\n" <>
115115
"{:message, 1}\n{:message, 2}\n{:message, 3}\n{:message, 4}\n" <>
116116
"{:message, 5}\n{:message, 6}\n{:message, 7}\n{:message, 8}\n" <>
117117
"{:message, 9}\n{:message, 10}\nShowing only 10 of 11 messages." = error.message

lib/logger/test/logger_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ defmodule LoggerTest do
3434
assert :ok = Logger.remove_backend(:console)
3535
assert Application.get_env(:logger, :backends) == []
3636
assert Logger.remove_backend(:console) ==
37-
{:error, :handler_not_found}
37+
{:error, :not_found}
3838

3939
assert capture_log(fn ->
4040
assert Logger.debug("hello", []) == :ok

0 commit comments

Comments
 (0)