檢視原始碼 ct_slave (common_test v1.27.5)
Common Test
框架函式,用於啟動和停止大規模測試的節點。
此模組匯出 Common Test
主節點用於啟動和停止「從屬」節點的函式。 它是測試規範中 {init, node_start}
術語的預設回呼模組。
摘要
函式
在本地主機上啟動名稱為 Node
的 Erlang 節點。
在指定主機上使用預設選項啟動 Erlang 節點,或在本地主機上使用指定選項啟動 Erlang 節點。也就是說,當第二個引數為原子值時,呼叫會被解讀為 start(Host, Node)
,當其為列表值時,則會被解讀為 start(Node, Opts)
。
在主機 Host
上,根據 Opts
中選項的組合,啟動名稱為 Node
的 Erlang 節點。
停止在本地主機上執行且名稱為 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 節點,或在本地主機上使用指定選項啟動 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
上,根據 Opts
中選項的組合,啟動名稱為 Node
的 Erlang 節點。
選項 Username
和 Password
用於登入遠端主機 Host
。如果省略 Username
,則預設為目前的使用者名稱。Password
預設為空。
在選項 Startup
中指定的函式清單,會在節點啟動後執行。請注意,所有使用的模組都必須存在於 Host
上的程式碼路徑中。
逾時的應用方式如下
BootTimeout
- 啟動 Erlang 節點的時間,以秒為單位。預設為 3 秒。如果節點在此時間內無法 ping 通,則會傳回結果{error, boot_timeout, NodeName}
。InitTimeout
- 等待節點的時間,直到它呼叫內部回呼函式,通知主節點啟動成功。預設為 1 秒。如果訊息逾時,則會傳回結果{error, init_timeout, NodeName}
。StartupTimeout
- 等待節點停止執行StartupFunctions
的時間。預設為 1 秒。如果發生逾時,則會傳回結果{error, startup_timeout, NodeName}
。
選項
monitor_master
- 指定如果主節點停止,是否要停止從屬節點。預設值為false
。kill_if_fail
- 指定如果在初始化或啟動期間發生逾時,是否要終止從屬節點。預設值為true
。請注意,如果發生啟動逾時,節點可能仍處於活動狀態,但在這種情況下不會被終止。erl_flags
- 指定哪些標誌會新增到可執行檔erl
的參數中。env
- 指定將擴充環境的環境變數清單。
特殊傳回值
- 如果具有指定名稱的節點已在指定主機上啟動,則為
{error, already_started, NodeName}
。 - 如果節點已啟動,但未連線到主節點,則為
{error, started_not_connected, NodeName}
。 - 如果呼叫
ct_slave:start/3
的節點沒有活動,則為{error, not_alive, NodeName}
。請注意,在這種情況下,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 節點。