View Source ct_slave (common_test v1.27)
Common Test framework functions for starting and stopping nodes for Large-Scale Testing.
Common Test
framework functions for starting and stopping nodes for
Large-Scale Testing.
This module exports functions used by the Common Test
Master to start and stop
"slave" nodes. It is the default callback module for the {init, node_start}
term in the Test Specification.
Summary
Functions
Starts an Erlang node with name Node
on the local host.
Starts an Erlang node with default options on a specified host, or on the local
host with specified options. That is, the call is interpreted as
start(Host, Node)
when the second argument is atom-valued and
start(Node, Opts)
when it is list-valued.
Starts an Erlang node with name Node
on host Host
as specified by the
combination of options in Opts
.
Stops the running Erlang node with name Node
on the local host.
Stops the running Erlang node with name Node
on host Host
.
Types
-type start_options() :: [{username, string()} | {password, string()} | {boot_timeout, non_neg_integer()} | {init_timeout, non_neg_integer()} | {startup_timeout, non_neg_integer()} | {startup_functions, [mfa()]} | {monitor_master, boolean()} | {kill_if_fail, boolean()} | {erl_flags, string()} | {env, [{Name :: os:env_var_name(), Val :: os:env_var_value() | false}]} | {ssh_port, inet:port_number()} | {ssh_opts, ssh:client_options()}].
-type stop_options() :: [{stop_timeout, non_neg_integer()}].
Functions
Starts an Erlang node with name Node
on the local host.
See also ct_slave:start/3
.
-spec start(HostOrNode, NodeOrOpts) -> ok | {error, Reason, Node} when HostOrNode :: atom() | node(), NodeOrOpts :: node() | start_options(), Reason :: atom(), Node :: node().
Starts an Erlang node with default options on a specified host, or on the local
host with specified options. That is, the call is interpreted as
start(Host, Node)
when the second argument is atom-valued and
start(Node, Opts)
when it is list-valued.
See also ct_slave:start/3
.
-spec start(Host, Node, Opts) -> ok | {error, Reason, Node} when Host :: atom(), Node :: node(), Opts :: start_options(), Reason :: atom().
Starts an Erlang node with name Node
on host Host
as specified by the
combination of options in Opts
.
Options Username
and Password
are used to log on to the remote host Host
.
Username
, if omitted, defaults to the current username. Password
is empty by
default.
A list of functions specified in option Startup
are executed after startup of
the node. Notice that all used modules are to be present in the code path on
Host
.
The time-outs are applied as follows:
BootTimeout
- The time to start the Erlang node, in seconds. Defaults to 3 seconds. If the node is not pingable within this time, the result{error, boot_timeout, NodeName}
is returned.InitTimeout
- The time to wait for the node until it calls the internal callback function informing master about a successful startup. Defaults to 1 second. In case of a timed out message, the result{error, init_timeout, NodeName}
is returned.StartupTimeout
- The time to wait until the node stops to runStartupFunctions
. Defaults to 1 second. If this time-out occurs, the result{error, startup_timeout, NodeName}
is returned.
Options:
monitor_master
- Specifies if the slave node is to be stopped if the master node stops. Defaults tofalse
.kill_if_fail
- Specifies if the slave node is to be killed if a time-out occurs during initialization or startup. Defaults totrue
. Notice that the node can also be still alive it the boot time-out occurred, but it is not killed in this case.erl_flags
- Specifies which flags are added to the parameters of the executableerl
.env
- Specifies a list of environment variables that will extend the environment.
Special return values:
{error, already_started, NodeName}
if the node with the specified name is already started on a specified host.{error, started_not_connected, NodeName}
if the node is started, but not connected to the master node.{error, not_alive, NodeName}
if the node on whichct_slave:start/3
is called, is not alive. Notice thatNodeName
is the name of the current node in this case.
Stops the running Erlang node with name Node
on the local host.
-spec stop(HostOrNode, NodeOrOpts) -> {ok, Node} | {error, Reason, Node} when HostOrNode :: atom() | Node, Node :: node(), NodeOrOpts :: Node | stop_options(), Reason :: atom().
Stops the running Erlang node with name Node
on host Host
.