View Source Enfiladex (enfiladex v0.2.0)

Enfiladex is the drop-in Common Test wrapper for ExUnit. It also exposes functions to run some code on a freshly started remote node.

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, accepts boolean() | atom() where atom() is the application name besides already loaded the config is to be transferred for, normally it’s the main application configuration
  • start_applications (default: true) — boolean() | atom() specifying whether the application(s) should have been starter on the spawned node(s)

  • nodes (default: 3) — for multi_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.

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

The callback to be called on the result on the remote node(s)

Link to this type

callback_return_value()

View Source
@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

Link to this function

multi_peer(fun, callback \\ [], config \\ [])

View Source
@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.

Link to this function

peer(fun, callback \\ [], config \\ [])

View Source
@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.

Link to this function

start_peers(nodes \\ 3, config \\ [])

View Source
@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.

@spec stop_peers(peer() | [peer()]) :: [:ok]

Stops the peers previously started with start_peers/1.