ct_master(3)

MODULE
ct_master - 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.

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 have not yet finished.

run(TestSpecs) -> ok

    Types
        TestSpecs = string() | [SeparateOrMerged]

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

run(TestSpecs, InclNodes, ExclNodes) -> ok

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

    Equivalent to 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 will be handled separately. It is however possible to also specify a list of specifications that should be merged into one before the tests are executed. Any test without a particular node specification will also be executed on the nodes in InclNodes. Nodes in the ExclNodes list will be excluded from the test.

run_on_node(TestSpecs, Node) -> ok

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

    Equivalent to 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}
        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.