.TH ct_master 3erl "common_test 1.23.3" "Ericsson AB" "Erlang Module Definition" .SH NAME ct_master \- Distributed test execution control for Common Test. .SH DESCRIPTION .LP Distributed test execution control for \fICommon Test\fR\&\&. .LP This module exports functions for running \fICommon Test\fR\& nodes on multiple hosts in parallel\&. .SH EXPORTS .LP .B abort() -> ok .br .RS .LP Stops all running tests\&. .RE .LP .B abort(Nodes) -> ok .br .RS .LP Types: .RS 3 Nodes = atom() | [atom()] .br .RE .RE .RS .LP Stops tests on specified nodes\&. .RE .LP .B basic_html(Bool) -> ok .br .RS .LP Types: .RS 3 Bool = true | false .br .RE .RE .RS .LP If set to \fItrue\fR\&, the \fIct_master logs\fR\& are written on a primitive HTML format, not using the \fICommon Test\fR\& CSS style sheet\&. .RE .LP .B get_event_mgr_ref() -> MasterEvMgrRef .br .RS .LP Types: .RS 3 MasterEvMgrRef = atom() .br .RE .RE .RS .LP Gets a reference to the \fICommon Test\fR\& master event manager\&. The reference can be used to, for example, add a user-specific event handler while tests are running\&. .LP \fIExample:\fR\& .LP .nf gen_event:add_handler(ct_master:get_event_mgr_ref(), my_ev_h, []) .fi .RE .LP .B progress() -> [{Node, Status}] .br .RS .LP Types: .RS 3 Node = atom() .br Status = finished_ok | ongoing | aborted | {error, Reason} .br Reason = term() .br .RE .RE .RS .LP Returns test progress\&. If \fIStatus\fR\& is \fIongoing\fR\&, tests are running on the node and are not yet finished\&. .RE .LP .B run(TestSpecs) -> ok .br .RS .LP Types: .RS 3 TestSpecs = string() | [SeparateOrMerged] .br .RE .RE .RS .LP Equivalent to \fIct_master:run(TestSpecs, false, [], [])\fR\&\&. .RE .LP .B run(TestSpecs, InclNodes, ExclNodes) -> ok .br .RS .LP Types: .RS 3 TestSpecs = string() | [SeparateOrMerged] .br SeparateOrMerged = string() | [string()] .br InclNodes = [atom()] .br ExclNodes = [atom()] .br .RE .RE .RS .LP Equivalent to \fIct_master:run(TestSpecs, false, InclNodes, ExclNodes)\fR\&\&. .RE .LP .B run(TestSpecs, AllowUserTerms, InclNodes, ExclNodes) -> ok .br .RS .LP Types: .RS 3 TestSpecs = string() | [SeparateOrMerged] .br SeparateOrMerged = string() | [string()] .br AllowUserTerms = bool() .br InclNodes = [atom()] .br ExclNodes = [atom()] .br .RE .RE .RS .LP Tests are spawned on the nodes as specified in \fITestSpecs\fR\&\&. Each specification in \fITestSpec\fR\& is handled separately\&. However, it is also possible to specify a list of specifications to be merged into one specification before the tests are executed\&. Any test without a particular node specification is also executed on the nodes in \fIInclNodes\fR\&\&. Nodes in the \fIExclNodes\fR\& list are excluded from the test\&. .RE .LP .B run_on_node(TestSpecs, Node) -> ok .br .RS .LP Types: .RS 3 TestSpecs = string() | [SeparateOrMerged] .br SeparateOrMerged = string() | [string()] .br Node = atom() .br .RE .RE .RS .LP Equivalent to \fIct_master:run_on_node(TestSpecs, false, Node)\fR\&\&. .RE .LP .B run_on_node(TestSpecs, AllowUserTerms, Node) -> ok .br .RS .LP Types: .RS 3 TestSpecs = string() | [SeparateOrMerged] .br SeparateOrMerged = string() | [string()] .br AllowUserTerms = bool() .br Node = atom() .br .RE .RE .RS .LP Tests are spawned on \fINode\fR\& according to \fITestSpecs\fR\&\&. .RE .LP .B run_test(Node, Opts) -> ok .br .RS .LP Types: .RS 3 Node = atom() .br Opts = [OptTuples] .br OptTuples = {config, CfgFiles} | {dir, TestDirs} | {suite, Suites} | {testcase, Cases} | {spec, TestSpecs} | {allow_user_terms, Bool} | {logdir, LogDir} | {event_handler, EventHandlers} | {silent_connections, Conns} | {cover, CoverSpecFile} | {cover_stop, Bool} | {userconfig, UserCfgFiles} .br CfgFiles = string() | [string()] .br TestDirs = string() | [string()] .br Suites = atom() | [atom()] .br Cases = atom() | [atom()] .br TestSpecs = string() | [string()] .br LogDir = string() .br EventHandlers = EH | [EH] .br EH = atom() | {atom(), InitArgs} | {[atom()], InitArgs} .br InitArgs = [term()] .br Conns = all | [atom()] .br .RE .RE .RS .LP Tests are spawned on \fINode\fR\& using \fIct:run_test/1\fR\& .RE