View Source Enfiladex (enfiladex v0.2.1)
Enfiladex
is the drop-in Common Test
wrapper for ExUnit. It also exposes functions
to run some code on a freshly started remote node(s).
All one needs to evaluate the code on one or more of connected nodes, would be to call a function exported from this module.
Known config parameters:
transfer_config
(default:true
) — whether the configuration of application(s) should be transferred to the started nodes, acceptsboolean() | atom()
whereatom()
is the application name besides already loaded the config is to be transferred for, normally it’s the main application configurationstart_applications
(default:true
) —boolean() | atom()
specifying whether the application(s) should have been starter on the spawned node(s)nodes
(default:3
) — formulti_peer/3
, the number of nodes to start
To use functions from this module with ExUnit
tests, one needs a named node.
Either run mix test
in a named environment, or use mix enfiladex.ex_unit
task.
Allowed start options besides ones above: https://www.erlang.org/doc/man/peer#type-start_options
Summary
Types
The callback to be called on the result on the remote node(s)
The return value of the callback function executed from remote peer
The function to be passed for execution on the remote node(s)
The return value of the function executed on remote peer
The peer handler
Functions
Executes the function given as first argument on several newly spawned nodes, with options
passed as config
argument.
Executes the function given as first argument on the newly spawned node, with options
passed as config
argument.
Starts the requested amount of peers. These peers should be then stopped with stop_peers/1
.
Stops the peers previously started with start_peers/1
.
Types
@type callback() :: (callee_return_value() -> callback_return_value()) | (node(), callee_return_value() -> callback_return_value()) | (:peer.server_ref(), node(), callee_return_value() -> callback_return_value())
The callback to be called on the result on the remote node(s)
@type callback_return_value() :: any()
The return value of the callback function executed from remote peer
@type callee() :: {module(), atom(), [term()]} | (-> callee_return_value()) | (node() -> callee_return_value()) | (:peer.server_ref(), node() -> callee_return_value())
The function to be passed for execution on the remote node(s)
@type callee_return_value() :: any()
The return value of the function executed on remote peer
@type peer() :: pid()
The peer handler
Functions
@spec multi_peer(callee(), callback() | keyword(), keyword()) :: [ callee_return_value() ]
Executes the function given as first argument on several newly spawned nodes, with options
passed as config
argument.
It would call Callback(Result)
for each result on each node, if callback
passed before
stopping the peer. The order is not guaranteed.
@spec peer(callee(), callback() | keyword(), keyword()) :: callee_return_value()
Executes the function given as first argument on the newly spawned node, with options
passed as config
argument.
It would call Callback(Result)
if callback
passed before stopping the peer.
Examples
iex> {_, :enfiladex_1@am, result} = Enfiladex.peer({IO, :inspect, [:ok]})
...> result
:ok
@spec start_peers( pos_integer(), keyword() ) :: {[{:ok, peer()} | {:ok, peer(), node()} | {:error, any()}], [{peer(), node()}]}
Starts the requested amount of peers. These peers should be then stopped with stop_peers/1
.
Stops the peers previously started with start_peers/1
.