Skip to content

Commit

Permalink
rename scheduler usage event modules
Browse files Browse the repository at this point in the history
  • Loading branch information
pavlos committed Apr 10, 2016
1 parent 566b89a commit 3653721
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 21 deletions.
2 changes: 1 addition & 1 deletion lib/tachometer.ex
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ defmodule Tachometer do
end

def add_scheduler_usage_handler(handler_module) do
Tachometer.Supervisor.supervise_event_handler Tachometer.SchedulerUsageEventManager, handler_module
Tachometer.Supervisor.supervise_event_handler Tachometer.SchedulerUsageEvent.Manager, handler_module
end

def remove_scheduler_usage_handler(handler_module) do
Expand Down
2 changes: 1 addition & 1 deletion lib/tachometer/scheduler_poller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ defmodule Tachometer.SchedulerPoller do
end

defp send_event(usage) do
Tachometer.SchedulerUsageEventManager.notify(usage)
Tachometer.SchedulerUsageEvent.Manager.notify(usage)
end

defp reduce_sample(sample) do
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
defmodule Tachometer.SchedulerUsageEventHandler do
defmodule Tachometer.SchedulerUsageEvent.Handler do
@callback handle_scheduler_usage_update(number) :: any

defmacro __using__(_opts) do
quote do
@behaviour Tachometer.SchedulerUsageEventHandler
@behaviour Tachometer.SchedulerUsageEvent.Handler
use GenEvent
require Logger

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
defmodule Tachometer.SchedulerUsageEventManager do
defmodule Tachometer.SchedulerUsageEvent.Manager do
def start_link do
GenEvent.start_link name: __MODULE__
end
Expand Down
2 changes: 1 addition & 1 deletion lib/tachometer/supervisor.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule Tachometer.Supervisor do
def start_link(poll_interval) do
children = [
worker(Tachometer, []),
worker(Tachometer.SchedulerUsageEventManager, []), #todo re-evaluate rest-for-one strategy, maybe use :one_for_all
worker(Tachometer.SchedulerUsageEvent.Manager, []), #todo re-evaluate rest-for-one strategy, maybe use :one_for_all
worker(Tachometer.SchedulerPoller, [poll_interval])
]

Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ defmodule Tachometer.Mixfile do
registered: [Tachometer,
Tachometer.SchedulerPoller,
Tachometer.Supervisor,
Tachometer.SchedulerUsageEventManager]]
Tachometer.SchedulerUsageEvent.Manager]]
end

# Dependencies can be Hex packages:
Expand Down
24 changes: 12 additions & 12 deletions test/event_handling_test.exs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
defmodule EventHandlingTest do
use ExUnit.Case, async: false
alias Tachometer.SchedulerUsageEventManager
alias Tachometer.SchedulerUsageEvent.Manager
require TestHandlerMacro
import ExUnit.CaptureLog

Expand All @@ -16,15 +16,15 @@ defmodule EventHandlingTest do

setup do
on_exit fn ->
SchedulerUsageEventManager.which_handlers |>
Manager.which_handlers |>
Enum.map(&Tachometer.remove_scheduler_usage_handler/1)
flush()
end
end

test "handler receives correct scheduler usage" do
defmodule TestHandlerUsage do
use Tachometer.SchedulerUsageEventHandler
use Tachometer.SchedulerUsageEvent.Handler

def handle_scheduler_usage_update(usage) do
assert usage == Tachometer.read()
Expand All @@ -41,7 +41,7 @@ defmodule EventHandlingTest do

assert_receive :scheduler_usage_update_received_by_TestSchedulerUsageEventHandler, @receive_wait
:ok = Tachometer.remove_scheduler_usage_handler handler_name
assert [] == Tachometer.SchedulerUsageEventManager.which_handlers
assert [] == Manager.which_handlers
refute_receive :scheduler_usage_update_received_by_TestSchedulerUsageEventHandler, @receive_wait * 3
end

Expand All @@ -51,34 +51,34 @@ defmodule EventHandlingTest do

assert kill_event_manager

assert [TestHandlerManagerKill] == Tachometer.SchedulerUsageEventManager.which_handlers
assert [TestHandlerManagerKill] == Manager.which_handlers
assert_receive :scheduler_usage_update_received_by_TestSchedulerUsageEventHandler, @receive_wait
end
end

test "that handlers can survive a bad notify" do
{:ok, _handler} = create_messaging_handler(TestHandlerBadNotify)
GenEvent.notify(Tachometer.SchedulerUsageEventManager, :bogus_event)
GenEvent.notify(Manager, :bogus_event)
flush()
assert_receive :scheduler_usage_update_received_by_TestSchedulerUsageEventHandler, @receive_wait
end

test "that handlers can survive a bad call" do
{:ok, _handler} = create_messaging_handler(TestHandlerBadCall)
GenEvent.call(Tachometer.SchedulerUsageEventManager, TestHandlerBadCall, :bogus_call)
GenEvent.call(Manager, TestHandlerBadCall, :bogus_call)
flush()
assert_receive :scheduler_usage_update_received_by_TestSchedulerUsageEventHandler, @receive_wait
end

test "removed handlers don't come back after supervisor restarts event manager" do
{:ok, _handler} = create_messaging_handler(TestHandlerRemove)
:ok = Tachometer.remove_scheduler_usage_handler TestHandlerRemove
assert [] == Tachometer.SchedulerUsageEventManager.which_handlers
assert [] == Manager.which_handlers

assert kill_event_manager

assert Tachometer.SchedulerUsageEventManager |> Process.whereis |> Process.alive?
assert [] == Tachometer.SchedulerUsageEventManager.which_handlers
assert Manager |> Process.whereis |> Process.alive?
assert [] == Manager.which_handlers
refute_receive :scheduler_usage_update_received_by_TestSchedulerUsageEventHandler, @receive_wait * 3
end

Expand All @@ -89,13 +89,13 @@ defmodule EventHandlingTest do
end

defp kill_event_manager do
original_pid = Process.whereis(Tachometer.SchedulerUsageEventManager)
original_pid = Process.whereis(Manager)

# crash the event manager
Process.exit(original_pid, :brutal_kill)
:timer.sleep 1

new_pid = Process.whereis(Tachometer.SchedulerUsageEventManager)
new_pid = Process.whereis(Manager)
original_pid != new_pid
end

Expand Down
4 changes: 2 additions & 2 deletions test/test_helper.exs
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ defmodule TestHandlerMacro do
def create_test_handler(test_pid, name) do

contents = quote bind_quoted: [test_pid: test_pid] do
use Tachometer.SchedulerUsageEventHandler
use Tachometer.SchedulerUsageEvent.Handler

def handle_scheduler_usage_update(usage) do
#TODO: maybe just modify SchedulerUsageEventManager.add_handler to pass in test_pid as arg
#TODO: maybe just modify SchedulerUsageEvent.Manager.add_handler to pass in test_pid as arg
send unquote(test_pid), :scheduler_usage_update_received_by_TestSchedulerUsageEventHandler
end
end
Expand Down

0 comments on commit 3653721

Please sign in to comment.