# ct_master

###
Module

ct_master

###
Module Summary

Distributed test execution control for Common Test.

###
Description

Distributed test execution control for Common Test.

This module exports functions for running Common Test nodes on multiple hosts in parallel.

###
Exports

####
abort() -> ok

Stops all running tests.

####
abort(Nodes) -> ok

### Types

Nodes = atom() | [atom()]

Stops tests on specified nodes.

####
basic_html(Bool) -> ok
OTP R15B01

### Types

Bool = true | false

If set to true, the ct_master logs are written on a primitive HTML format, not using the Common Test CSS style sheet.

####
get_event_mgr_ref() -> MasterEvMgrRef
OTP 17.5

### Types

MasterEvMgrRef = atom()

Gets a reference to the Common Test master event manager. The reference can be used to, for example, add a user-specific event handler while tests are running.

Example:

     gen_event:add_handler(ct_master:get_event_mgr_ref(), my_ev_h, [])

####
progress() -> [{Node, Status}]

### Types

Node = atom()
Status = finished_ok | ongoing | aborted | {error, Reason}
Reason = term()

Returns test progress. If Status is ongoing, tests are running on the node and are not yet finished.

####
run(TestSpecs) -> ok

### Types

TestSpecs = string() | [SeparateOrMerged]

Equivalent to ct_master:run(TestSpecs, false, [], []).

####
run(TestSpecs, InclNodes, ExclNodes) -> ok

### Types

TestSpecs = string() | [SeparateOrMerged]
SeparateOrMerged = string() | [string()]
InclNodes = [atom()]
ExclNodes = [atom()]

Equivalent to ct_master:run(TestSpecs, false, InclNodes, ExclNodes).

####
run(TestSpecs, AllowUserTerms, InclNodes, ExclNodes) -> ok

### Types

TestSpecs = string() | [SeparateOrMerged]
SeparateOrMerged = string() | [string()]
AllowUserTerms = bool()
InclNodes = [atom()]
ExclNodes = [atom()]

Tests are spawned on the nodes as specified in TestSpecs. Each specification in TestSpec 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 InclNodes. Nodes in the ExclNodes list are excluded from the test.

####
run_on_node(TestSpecs, Node) -> ok

### Types

TestSpecs = string() | [SeparateOrMerged]
SeparateOrMerged = string() | [string()]
Node = atom()

Equivalent to ct_master:run_on_node(TestSpecs, false, Node).

####
run_on_node(TestSpecs, AllowUserTerms, Node) -> ok

### Types

TestSpecs = string() | [SeparateOrMerged]
SeparateOrMerged = string() | [string()]
AllowUserTerms = bool()
Node = atom()

Tests are spawned on Node according to TestSpecs.

####
run_test(Node, Opts) -> ok

### Types

Node = atom()
Opts = [OptTuples]
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}
CfgFiles = string() | [string()]
TestDirs = string() | [string()]
Suites = atom() | [atom()]
Cases = atom() | [atom()]
TestSpecs = string() | [string()]
LogDir = string()
EventHandlers = EH | [EH]
EH = atom() | {atom(), InitArgs} | {[atom()], InitArgs}
InitArgs = [term()]
Conns = all | [atom()]

Tests are spawned on Node using ct:run_test/1