View Source ct_master (common_test v1.26.2)
Distributed test execution control for Common Test.
Distributed test execution control for Common Test.
This module exports functions for running Common Test nodes on multiple hosts
in parallel.
Summary
Functions
abort() -> ok
abort(Nodes) -> ok
basic_html(Bool) -> ok
get_event_mgr_ref() -> MasterEvMgrRef
progress() -> [{Node, Status}]
run(TestSpecs) -> [{Specs, ok} | {error, Reason}]
run(TestSpecs, InclNodes, ExclNodes) -> [{Specs, ok} | {error, Reason}]
run(TestSpecs, AllowUserTerms, InclNodes, ExclNodes) -> [{Specs, ok} | {error, Reason}]
run_on_node(TestSpecs, Node) -> [{Specs, ok} | {error, Reason}]
run_on_node(TestSpecs, AllowUserTerms, Node) -> [{Specs, ok} | {error, Reason}]
run_test(Node, Opts) -> ok
Types
-type test_spec() :: file:name_all().
Functions
-spec abort() -> ok.
abort() -> ok
Stops all running tests.
-spec abort(Nodes) -> ok when Nodes :: Node | [Node], Node :: node().
abort(Nodes) -> ok
Stops tests on specified nodes.
-spec basic_html(Bool) -> ok when Bool :: boolean().
basic_html(Bool) -> ok
If set to true, the ct_master logs are written on a primitive HTML format,
not using the Common Test CSS style sheet.
-spec get_event_mgr_ref() -> atom().
get_event_mgr_ref() -> MasterEvMgrRef
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}]
Returns test progress. If Status is ongoing, tests are running on the node
and are not yet finished.
-spec run(TestSpecs) -> [{Specs, ok} | {error, Reason}] when TestSpecs :: TestSpec | [TestSpec] | [[TestSpec]], TestSpec :: test_spec(), Specs :: [file:filename_all()], Reason :: term().
run(TestSpecs) -> [{Specs, ok} | {error, Reason}]
Equivalent to ct_master:run(TestSpecs, false, [], []).
-spec run(TestSpecs, InclNodes, ExclNodes) -> [{Specs, ok} | {error, Reason}] when TestSpecs :: TestSpec | [TestSpec] | [[TestSpec]], TestSpec :: test_spec(), InclNodes :: [node()], ExclNodes :: [node()], Specs :: [file:filename_all()], Reason :: term().
run(TestSpecs, InclNodes, ExclNodes) -> [{Specs, ok} | {error, Reason}]
Equivalent to
ct_master:run(TestSpecs, false, InclNodes, ExclNodes).
-spec run(TestSpecs, AllowUserTerms, InclNodes, ExclNodes) -> [{Specs, ok} | {error, Reason}] when TestSpecs :: TestSpec | [TestSpec] | [[TestSpec]], TestSpec :: test_spec(), AllowUserTerms :: boolean(), InclNodes :: [node()], ExclNodes :: [node()], Specs :: [file:filename_all()], Reason :: term().
run(TestSpecs, AllowUserTerms, InclNodes, ExclNodes) -> [{Specs, ok} | {error, Reason}]
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.
-spec run_on_node(TestSpecs, Node) -> [{Specs, ok} | {error, Reason}] when TestSpecs :: TestSpec | [TestSpec] | [[TestSpec]], TestSpec :: test_spec(), Node :: node(), Specs :: [file:filename_all()], Reason :: term().
run_on_node(TestSpecs, Node) -> [{Specs, ok} | {error, Reason}]
Equivalent to
ct_master:run_on_node(TestSpecs, false, Node).
-spec run_on_node(TestSpecs, AllowUserTerms, Node) -> [{Specs, ok} | {error, Reason}] when TestSpecs :: TestSpec | [TestSpec] | [[TestSpec]], TestSpec :: test_spec(), AllowUserTerms :: boolean(), Node :: node(), Specs :: [file:filename_all()], Reason :: term().
run_on_node(TestSpecs, AllowUserTerms, Node) -> [{Specs, ok} | {error, Reason}]
Tests are spawned on Node according to TestSpecs.
-spec run_test(Node, Opts) -> ok when Node :: node(), Opts :: [OptTuples], OptTuples :: {dir, TestDirs} | {suite, Suites} | {group, Groups} | {testcase, Cases} | {spec, TestSpecs} | {join_specs, boolean()} | {label, Label} | {config, CfgFiles} | {userconfig, UserConfig} | {allow_user_terms, boolean()} | {logdir, LogDir} | {silent_connections, Conns} | {stylesheet, CSSFile} | {cover, CoverSpecFile} | {cover_stop, boolean()} | {step, StepOpts} | {event_handler, EventHandlers} | {include, InclDirs} | {auto_compile, boolean()} | {abort_if_missing_suites, boolean()} | {create_priv_dir, CreatePrivDir} | {multiply_timetraps, M} | {scale_timetraps, boolean()} | {repeat, N} | {duration, DurTime} | {until, StopTime} | {force_stop, ForceStop} | {decrypt, DecryptKeyOrFile} | {refresh_logs, LogDir} | {logopts, LogOpts} | {verbosity, VLevels} | {basic_html, boolean()} | {esc_chars, boolean()} | {keep_logs, KeepSpec} | {ct_hooks, CTHs} | {ct_hooks_order, CTHsOrder} | {enable_builtin_hooks, boolean()} | {release_shell, boolean()}, TestDirs :: [string()] | string(), Suites :: [string()] | [atom()] | string() | atom(), Cases :: [atom()] | atom(), Groups :: GroupNameOrPath | [GroupNameOrPath], GroupNameOrPath :: [atom()] | atom() | all, TestSpecs :: [string()] | string(), Label :: string() | atom(), CfgFiles :: [string()] | string(), UserConfig :: [{CallbackMod, CfgStrings}] | {CallbackMod, CfgStrings}, CallbackMod :: atom(), CfgStrings :: [string()] | string(), LogDir :: string(), Conns :: all | [atom()], CSSFile :: string(), CoverSpecFile :: string(), StepOpts :: [StepOpt], StepOpt :: config | keep_inactive, EventHandlers :: EH | [EH], EH :: atom() | {atom(), InitArgs} | {[atom()], InitArgs}, InitArgs :: [term()], InclDirs :: [string()] | string(), CreatePrivDir :: auto_per_run | auto_per_tc | manual_per_tc, M :: integer(), N :: integer(), DurTime :: HHMMSS, HHMMSS :: string(), StopTime :: YYMoMoDDHHMMSS | HHMMSS, YYMoMoDDHHMMSS :: string(), ForceStop :: skip_rest | boolean(), DecryptKeyOrFile :: {key, DecryptKey} | {file, DecryptFile}, DecryptKey :: string(), DecryptFile :: string(), LogOpts :: [LogOpt], LogOpt :: no_nl | no_src, VLevels :: VLevel | [{Category, VLevel}], VLevel :: integer(), Category :: atom(), KeepSpec :: all | pos_integer(), CTHs :: [CTHModule | {CTHModule, CTHInitArgs}], CTHsOrder :: atom(), CTHModule :: atom(), CTHInitArgs :: term().
run_test(Node, Opts) -> ok
Tests are spawned on Node using ct:run_test/1