查看源代码 ct_slave (common_test v1.27.5)
Common Test
框架函数,用于启动和停止大规模测试的节点。
此模块导出的函数供 Common Test
Master 用于启动和停止“slave”节点。它是测试规范中 {init, node_start}
项的默认回调模块。
摘要
函数
在本地主机上启动名称为 Node
的 Erlang 节点。
在指定主机上以默认选项启动 Erlang 节点,或在本地主机上以指定选项启动。也就是说,当第二个参数为原子值时,调用被解释为 start(Host, Node)
,当第二个参数为列表值时,调用被解释为 start(Node, Opts)
。
在主机 Host
上启动名称为 Node
的 Erlang 节点,具体配置由 Opts
中的选项组合指定。
停止本地主机上名称为 Node
的正在运行的 Erlang 节点。
停止主机 Host
上名称为 Node
的正在运行的 Erlang 节点。
类型
-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()}].
用于启动 ct_slave
节点的选项。
-type stop_options() :: [{stop_timeout, non_neg_integer()}].
用于停止 ct_slave
节点的选项。
函数
在本地主机上启动名称为 Node
的 Erlang 节点。
另请参阅 ct_slave:start/3
。
-spec start(HostOrNode, NodeOrOpts) -> ok | {error, Reason, Node} when HostOrNode :: atom() | node(), NodeOrOpts :: node() | start_options(), Reason :: atom(), Node :: node().
在指定主机上以默认选项启动 Erlang 节点,或在本地主机上以指定选项启动。也就是说,当第二个参数为原子值时,调用被解释为 start(Host, Node)
,当第二个参数为列表值时,调用被解释为 start(Node, Opts)
。
另请参阅 ct_slave:start/3
。
-spec start(Host, Node, Opts) -> ok | {error, Reason, Node} when Host :: atom(), Node :: node(), Opts :: start_options(), Reason :: atom().
在主机 Host
上启动名称为 Node
的 Erlang 节点,具体配置由 Opts
中的选项组合指定。
选项 Username
和 Password
用于登录到远程主机 Host
。 如果省略 Username
,则默认为当前用户名。 Password
默认为空。
在节点启动后,执行在选项 Startup
中指定的函数列表。 请注意,所有使用的模块都应存在于 Host
上的代码路径中。
超时时间如下应用:
BootTimeout
- 启动 Erlang 节点的时间,以秒为单位。 默认为 3 秒。 如果节点在此时间内无法 ping 通,则返回结果{error, boot_timeout, NodeName}
。InitTimeout
- 等待节点直到它调用内部回调函数通知 master 成功启动的时间。 默认为 1 秒。 如果消息超时,则返回结果{error, init_timeout, NodeName}
。StartupTimeout
- 等待节点停止运行StartupFunctions
的时间。 默认为 1 秒。 如果发生此超时,则返回结果{error, startup_timeout, NodeName}
。
选项
monitor_master
- 指定如果 master 节点停止,是否停止 slave 节点。 默认为false
。kill_if_fail
- 指定如果在初始化或启动期间发生超时,是否终止 slave 节点。 默认为true
。 请注意,如果发生引导超时,节点也可能仍然存活,但在此情况下不会被终止。erl_flags
- 指定哪些标志添加到可执行文件erl
的参数中。env
- 指定将扩展环境的环境变量列表。
特殊返回值
{error, already_started, NodeName}
如果具有指定名称的节点已在指定主机上启动。{error, started_not_connected, NodeName}
如果节点已启动,但未连接到 master 节点。{error, not_alive, NodeName}
如果调用ct_slave:start/3
的节点未存活。 请注意,在这种情况下,NodeName
是当前节点的名称。
停止本地主机上名称为 Node
的正在运行的 Erlang 节点。
-spec stop(HostOrNode, NodeOrOpts) -> {ok, Node} | {error, Reason, Node} when HostOrNode :: atom() | Node, Node :: node(), NodeOrOpts :: Node | stop_options(), Reason :: atom().
停止主机 Host
上名称为 Node
的正在运行的 Erlang 节点。