ct_slave
Module
ct_slave
Module summary
Common Test framework functions for starting and stopping nodes for Large-Scale Testing.
Description
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.
Exports
start(Node) -> Result
Types:
Node = atom() Result = {ok, NodeName} | {error, Reason, NodeName} Reason = already_started | started_not_connected | boot_timeout | init_timeout | startup_timeout | not_alive NodeName = atom()
Starts an Erlang node with name Node
on the local host.
See also ct_slave:start/3
.
start(HostOrNode, NodeOrOpts) -> Result
Types:
HostOrNode = atom() NodeOrOpts = atom() | list() Result = {ok, NodeName} | {error, Reason, NodeName} Reason = already_started | started_not_connected | boot_timeout | init_timeout | startup_timeout | not_alive NodeName = atom()
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
.
start(Host, Node, Opts) -> Result
Types:
Node = atom() Host = atom() Opts = [OptTuples] OptTuples = {username, Username} | {password, Password} | {boot_timeout, BootTimeout} | {init_timeout, InitTimeout} | {startup_timeout, StartupTimeout} | {startup_functions, StartupFunctions} | {monitor_master, Monitor} | {kill_if_fail, KillIfFail} | {erl_flags, ErlangFlags} | {env, [{EnvVar, Value}]} Username = string() Password = string() BootTimeout = integer() InitTimeout = integer() StartupTimeout = integer() StartupFunctions = [StartupFunctionSpec] StartupFunctionSpec = {Module, Function, Arguments} Module = atom() Function = atom() Arguments = [term] Monitor = bool() KillIfFail = bool() ErlangFlags = string() EnvVar = string() Value = string() Result = {ok, NodeName} | {error, Reason, NodeName} Reason = already_started | started_not_connected | boot_timeout | init_timeout | startup_timeout | not_alive NodeName = 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 run
StartupFunctions
. 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 to
false
.kill_if_fail
Specifies if the slave node is to be killed if a time-out occurs during initialization or startup. Defaults to
true
. Notice that the node can also be still alive it the boot time-out occurred, but it is not killed in this case.erlang_flags
Specifies which flags are added to the parameters of the executable
erl
.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.
stop(Node) -> Result
Types:
Node = atom() Result = {ok, NodeName} | {error, Reason, NodeName} Reason = not_started | not_connected | stop_timeout
Stops the running Erlang node with name Node
on the local host.
stop(Host, Node) -> Result
Types:
Host = atom() Node = atom() Result = {ok, NodeName} | {error, Reason, NodeName} Reason = not_started | not_connected | stop_timeout NodeName = atom()
Stops the running Erlang node with name Node
on host Host
.
© 2010–2017 Ericsson AB
Licensed under the Apache License, Version 2.0.