コード例 #1
0
    ("lttng-ust-2.12", "lttng-tools-2.9", success),
    ("lttng-ust-2.12", "lttng-tools-2.10", success),
    ("lttng-ust-2.12", "lttng-tools-2.11", success),
    ("lttng-ust-2.12", "lttng-tools-2.12", success),
    ("lttng-ust-2.12", "lttng-tools-2.13", tracing_unavailable_so),
    ("lttng-ust-2.13", "lttng-tools-2.7", tracing_unavailable_so),
    ("lttng-ust-2.13", "lttng-tools-2.8", tracing_unavailable_so),
    ("lttng-ust-2.13", "lttng-tools-2.9", tracing_unavailable_so),
    ("lttng-ust-2.13", "lttng-tools-2.10", tracing_unavailable_so),
    ("lttng-ust-2.13", "lttng-tools-2.11", tracing_unavailable_so),
    ("lttng-ust-2.13", "lttng-tools-2.12", tracing_unavailable_so),
    ("lttng-ust-2.13", "lttng-tools-2.13", success),

]

runtime_matrix_enum = Settings.generate_runtime_test_matrix(test_matrix_enum, [0, 1])
runtime_matrix_base = Settings.generate_runtime_test_matrix(test_matrix_base, [0, 1])


@pytest.mark.parametrize("ust_label,tools_label,scenario", runtime_matrix_enum)
def test_ust_tracepoint_abi_api_vs_ust_enum(tmpdir, ust_label, tools_label, scenario):

    nb_loop = 100

    if scenario != tracing_unavailable:
        nb_expected_events = 200
    else:
        nb_expected_events = 0

    # Prepare environment
    ust = ProjectFactory.get_precook(ust_label)
コード例 #2
0
    ("lttng-ust-2.12", "lttng-tools-2.13", False),
    # For ust 2.13 the provider version is bumped from 1.0 to 2.0
    # See commit 04f0b55a6bafe380a1b9ce93267d5a7da963cbf9 in lttng-ust tree.
    # The .so for ust was bumped to .1.
    ("lttng-ust-2.13", "lttng-tools-2.7", False),
    ("lttng-ust-2.13", "lttng-tools-2.8", False),
    ("lttng-ust-2.13", "lttng-tools-2.9", False),
    ("lttng-ust-2.13", "lttng-tools-2.10", False),
    ("lttng-ust-2.13", "lttng-tools-2.11", False),
    ("lttng-ust-2.13", "lttng-tools-2.12", False),
    ("lttng-ust-2.13", "lttng-tools-2.13", True),
]

event_registration_error = "Error: UST app recv reg unsupported version"

runtime_matrix_base_app_tracing_available = Settings.generate_runtime_test_matrix(
    test_matrix_base_app_tracing_available, [0, 1])


@pytest.mark.parametrize("ust_label,tools_label,tracing_available",
                         runtime_matrix_base_app_tracing_available)
def test_ust_app_tools_update_tracing_available(tmpdir, ust_label, tools_label,
                                                tracing_available):

    if tracing_available:
        nb_events = 100
    else:
        nb_events = 0

    # Prepare environment
    ust = ProjectFactory.get_precook(ust_label)
    tools = ProjectFactory.get_precook(tools_label)
コード例 #3
0
        False,
        marks=pytest.mark.xfail(reason="Should fail but does not ...."),
    ),
    pytest.param(
        "lttng-ust-2.13",
        "lttng-tools-2.9",
        False,
        marks=pytest.mark.xfail(reason="Should fail but does not ...."),
    ),
    ("lttng-ust-2.13", "lttng-tools-2.10", True),
    ("lttng-ust-2.13", "lttng-tools-2.11", True),
    ("lttng-ust-2.13", "lttng-tools-2.12", True),
    ("lttng-ust-2.13", "lttng-tools-2.13", True),
]

runtime_matrix_label = Settings.generate_runtime_test_matrix(
    test_matrix_label, [0, 1])


@pytest.mark.parametrize("ust_label,tools_label,should_pass",
                         runtime_matrix_label)
def test_soname_configure(tmpdir, ust_label, tools_label, should_pass):
    ust = ProjectFactory.get_fresh(ust_label, str(tmpdir.mkdir("lttng-ust")))
    tools = ProjectFactory.get_fresh(tools_label,
                                     str(tmpdir.mkdir("lttng-tools")))

    ust.autobuild()

    # Replace the default lttng-ust for lttng-tools
    tools.dependencies["lttng-ust"] = ust

    # TODO: Propose fixes to upstream regarding the check
コード例 #4
0
    ("lttng-ust-2.12", "lttng-tools-2.10", 2, "Success"),
    ("lttng-ust-2.12", "lttng-tools-2.11", 2, "Success"),
    ("lttng-ust-2.12", "lttng-tools-2.12", 2, "Success"),
    ("lttng-ust-2.12", "lttng-tools-2.12", 2, "Success"),
    ("lttng-ust-2.12", "lttng-tools-2.13", 2, "Success"),
    ("lttng-ust-2.13", "lttng-tools-2.7", 2, "Unsupported protocol"),
    ("lttng-ust-2.13", "lttng-tools-2.8", 2, "Success"),
    ("lttng-ust-2.13", "lttng-tools-2.9", 2, "Success"),
    ("lttng-ust-2.13", "lttng-tools-2.10", 2, "Success"),
    ("lttng-ust-2.13", "lttng-tools-2.11", 2, "Success"),
    ("lttng-ust-2.13", "lttng-tools-2.12", 2, "Success"),
    ("lttng-ust-2.13", "lttng-tools-2.12", 2, "Success"),
    ("lttng-ust-2.13", "lttng-tools-2.13", 2, "Success"),
]

runtime_matrix_tracing_available = Settings.generate_runtime_test_matrix(
    test_matrix_tracing_available, [0, 1])
runtime_matrix_agent_interface = Settings.generate_runtime_test_matrix(
    test_matrix_agent_interface, [0, 1])


@pytest.mark.parametrize("ust_label,tools_label,app_version,should_trace",
                         runtime_matrix_tracing_available)
def test_ust_java_agent_tracing_available(tmpdir, ust_label, tools_label,
                                          app_version, should_trace):

    nb_iter = 100
    nb_events = 3 * nb_iter

    # Prepare environment
    ust = ProjectFactory.get_precook(ust_label)
    tools = ProjectFactory.get_precook(tools_label)
コード例 #5
0
"""
test_matrix_starglobing_enabler = [
    ("lttng-ust-2.9", "lttng-tools-2.9", "Unsupported by tools"),
    ("lttng-ust-2.9", "lttng-tools-2.10", "Unsupported by ust"),
    ("lttng-ust-2.10", "lttng-tools-2.9", "Unsupported by tools"),
    ("lttng-ust-2.10", "lttng-tools-2.10", "Supported"),
    ("lttng-ust-2.11", "lttng-tools-2.11", "Supported"),
    ("lttng-ust-2.11", "lttng-tools-2.12", "Supported"),
    ("lttng-ust-2.12", "lttng-tools-2.11", "Supported"),
    ("lttng-ust-2.12", "lttng-tools-2.12", "Supported"),
    ("lttng-ust-2.12", "lttng-tools-2.13", "Supported"),
    ("lttng-ust-2.13", "lttng-tools-2.13", "Supported"),
]

runtime_matrix_tracing_available = Settings.generate_runtime_test_matrix(
    test_matrix_tracing_available, [0, 1]
)
runtime_matrix_regen_statedump = Settings.generate_runtime_test_matrix(
    test_matrix_regen_statedump, [0, 1]
)
runtime_matrix_starglobing_enabler = Settings.generate_runtime_test_matrix(
    test_matrix_starglobing_enabler, [0, 1]
)


@pytest.mark.parametrize(
    "ust_label,tools_label,outcome", runtime_matrix_tracing_available
)
def test_ust_app_tracing_available(tmpdir, ust_label, tools_label, outcome):

    nb_events = 100
コード例 #6
0
      "babeltrace-1.5"], "lttng-tools-2.7"),
    (["babeltrace-1.3", "babeltrace-1.4",
      "babeltrace-1.5"], "lttng-tools-2.8"),
    (["babeltrace-1.3", "babeltrace-1.4",
      "babeltrace-1.5"], "lttng-tools-2.9"),
    (["babeltrace-1.3", "babeltrace-1.4",
      "babeltrace-1.5"], "lttng-tools-2.10"),
    (["babeltrace-1.3", "babeltrace-1.4",
      "babeltrace-1.5"], "lttng-tools-2.11"),
    (["babeltrace-1.3", "babeltrace-1.4",
      "babeltrace-1.5"], "lttng-tools-2.12"),
    (["babeltrace-1.3", "babeltrace-1.4",
      "babeltrace-1.5"], "lttng-tools-2.13"),
]

runtime_matrix_base_ust = Settings.generate_runtime_test_matrix(
    test_matrix_base_ust, [0, 1])
runtime_matrix_lost_packet = Settings.generate_runtime_test_matrix(
    test_matrix_lost_packet, [0])
runtime_matrix_base_modules = Settings.generate_runtime_test_matrix(
    test_matrix_base_modules, [0, 1, 2])

# For these if one of the babeltrace is "deprecated" or in the "test only", the
# whole sub list will be discarded/passed. We can do further processing later on when
# this situation occurs.
runtime_matrix_same_trace_modules = Settings.generate_runtime_test_matrix(
    test_matrix_same_trace_modules, [0, 1])
runtime_matrix_same_trace_ust = Settings.generate_runtime_test_matrix(
    test_matrix_same_trace_ust, [0, 1])


@pytest.mark.parametrize("babeltrace_l, tools_l", runtime_matrix_base_ust)
コード例 #7
0
    ("lttng-tools-2.12", "lttng-tools-2.8", True),
    ("lttng-tools-2.12", "lttng-tools-2.9", True),
    ("lttng-tools-2.12", "lttng-tools-2.10", True),
    ("lttng-tools-2.12", "lttng-tools-2.11", True),
    ("lttng-tools-2.12", "lttng-tools-2.12", True),
    ("lttng-tools-2.12", "lttng-tools-2.13", True),
    ("lttng-tools-2.13", "lttng-tools-2.7", True),
    ("lttng-tools-2.13", "lttng-tools-2.8", True),
    ("lttng-tools-2.13", "lttng-tools-2.9", True),
    ("lttng-tools-2.13", "lttng-tools-2.10", True),
    ("lttng-tools-2.13", "lttng-tools-2.11", True),
    ("lttng-tools-2.13", "lttng-tools-2.12", True),
    ("lttng-tools-2.13", "lttng-tools-2.13", True),
]

runtime_matrix_streaming_base = Settings.generate_runtime_test_matrix(
    test_matrix_streaming_base, [0, 1])
runtime_matrix_streaming_regenerate_metadata = Settings.generate_runtime_test_matrix(
    test_matrix_streaming_regenerate_metadata, [0, 1])
runtime_matrix_live_base = Settings.generate_runtime_test_matrix(
    test_matrix_live_base, [0, 1])


@pytest.mark.parametrize("relayd_label,consumerd_label,scenario",
                         runtime_matrix_streaming_base)
def test_relayd_vs_consumerd_streaming_base(tmpdir, relayd_label,
                                            consumerd_label, scenario):

    nb_loop = 100
    nb_expected_events = 100

    # Prepare environment
コード例 #8
0
    ("lttng-modules-2.13", "lttng-tools-2.8", "Unsupported by tools"),
    ("lttng-modules-2.13", "lttng-tools-2.9", "Unsupported by tools"),
    ("lttng-modules-2.13", "lttng-tools-2.10", "Supported"),
    ("lttng-modules-2.13", "lttng-tools-2.11", "Supported"),
    ("lttng-modules-2.13", "lttng-tools-2.12", "Supported"),
    ("lttng-modules-2.13", "lttng-tools-2.13", "Supported"),
]


def get_metadata_file_path(base_trace_path):
    metadata = os.path.join(base_trace_path, "kernel", "metadata")
    return metadata


runtime_matrix_base_tracing = Settings.generate_runtime_test_matrix(
    test_matrix_base_tracing, [0, 1]
)
runtime_matrix_regen_metadata = Settings.generate_runtime_test_matrix(
    test_matrix_regen_metadata, [0, 1]
)
runtime_matrix_statedump = Settings.generate_runtime_test_matrix(
    test_matrix_statedump, [0, 1]
)
runtime_matrix_starglobing_enabler = Settings.generate_runtime_test_matrix(
    test_matrix_starglobing_enabler, [0, 1]
)


@must_be_root
@pytest.mark.parametrize("modules_label,tools_label", runtime_matrix_base_tracing)
def test_modules_base_tracing(tmpdir, modules_label, tools_label):
コード例 #9
0
    ("lttng-tools-2.12", "lttng-tools-2.8", "Missing symbol"),
    ("lttng-tools-2.12", "lttng-tools-2.9", "Missing symbol"),
    ("lttng-tools-2.12", "lttng-tools-2.10", "Missing symbol"),
    ("lttng-tools-2.12", "lttng-tools-2.11", "Missing symbol"),
    ("lttng-tools-2.12", "lttng-tools-2.12", "Success"),
    ("lttng-tools-2.12", "lttng-tools-2.13", "Success"),
    ("lttng-tools-2.13", "lttng-tools-2.7", "Missing symbol"),
    ("lttng-tools-2.13", "lttng-tools-2.8", "Missing symbol"),
    ("lttng-tools-2.13", "lttng-tools-2.9", "Missing symbol"),
    ("lttng-tools-2.13", "lttng-tools-2.10", "Missing symbol"),
    ("lttng-tools-2.13", "lttng-tools-2.11", "Missing symbol"),
    ("lttng-tools-2.13", "lttng-tools-2.12", "Missing symbol"),
    ("lttng-tools-2.13", "lttng-tools-2.13", "Success"),
]

runtime_matrix_basic_listing = Settings.generate_runtime_test_matrix(
    test_matrix_basic_listing, [0, 1])


@pytest.mark.parametrize("client_label,tools_label,outcome",
                         runtime_matrix_basic_listing)
def test_tools_liblttng_ctl_vs_sessiond_basic_listing(tmpdir, client_label,
                                                      tools_label, outcome):

    # Prepare environment
    client = ProjectFactory.get_precook(client_label)
    tools = ProjectFactory.get_precook(tools_label)

    tools_runtime_path = os.path.join(str(tmpdir), "tools")

    lttng_client = os.path.join(client.installation_path, "bin/lttng")
コード例 #10
0
ファイル: test_save_load.py プロジェクト: lttng/lttng-ivc
    # Save change is different and trackers also.
    ("lttng-tools-2.12", "lttng-tools-2.10", False),
    ("lttng-tools-2.12", "lttng-tools-2.11", False),
    ("lttng-tools-2.12", "lttng-tools-2.12", True),
    ("lttng-tools-2.12", "lttng-tools-2.13", True),
    ("lttng-tools-2.13", "lttng-tools-2.7", False),
    ("lttng-tools-2.13", "lttng-tools-2.8", False),
    ("lttng-tools-2.13", "lttng-tools-2.9", False),
    # Save change is different and trackers also.
    ("lttng-tools-2.13", "lttng-tools-2.10", False),
    ("lttng-tools-2.13", "lttng-tools-2.11", False),
    ("lttng-tools-2.13", "lttng-tools-2.12", True),
    ("lttng-tools-2.13", "lttng-tools-2.13", True),
]

runtime_matrix_app_contexts = Settings.generate_runtime_test_matrix(
    test_matrix_app_contexts, [0, 1])
runtime_matrix_blocking_timeout = Settings.generate_runtime_test_matrix(
    test_matrix_blocking_timeout, [0, 1])
runtime_matrix_monitor_timer_interval = Settings.generate_runtime_test_matrix(
    test_matrix_monitor_timer_interval, [0, 1])


def validate_app_context(session_name, save_file):
    xpath_provider_name = '/sessions/session[name="{}"]/domains/domain[type="JUL" or type="LOG4J"]/channels/channel/contexts/context/app/provider_name'.format(
        session_name)
    xpath_ctx_name = '/sessions/session[name="{}"]/domains/domain[type="JUL" or type="LOG4J"]/channels/channel/contexts/context/app/ctx_name'.format(
        session_name)
    xpath_node_expected = 2

    # Check that the file is present
    assert os.path.isfile(save_file)
コード例 #11
0
    ("lttng-tools-2.12", "lttng-tools-2.8", False),
    ("lttng-tools-2.12", "lttng-tools-2.9", False),
    ("lttng-tools-2.12", "lttng-tools-2.10", False),
    ("lttng-tools-2.12", "lttng-tools-2.11", False),
    ("lttng-tools-2.12", "lttng-tools-2.12", True),
    ("lttng-tools-2.12", "lttng-tools-2.13", True),
    ("lttng-tools-2.13", "lttng-tools-2.7", False),
    ("lttng-tools-2.13", "lttng-tools-2.8", False),
    ("lttng-tools-2.13", "lttng-tools-2.9", False),
    ("lttng-tools-2.13", "lttng-tools-2.10", False),
    ("lttng-tools-2.13", "lttng-tools-2.11", False),
    ("lttng-tools-2.13", "lttng-tools-2.12", True),
    ("lttng-tools-2.13", "lttng-tools-2.13", True),
]

runtime_matrix_consumerd = Settings.generate_runtime_test_matrix(
    test_matrix_consumerd, [0, 1])


@pytest.mark.parametrize("consumerd_l,tools_l,should_work",
                         runtime_matrix_consumerd)
def test_consumerd_vs_sessiond(tmpdir, consumerd_l, tools_l, should_work):
    """
    Scenario:
        Point a lttng-tools to a consumerd of another version and see what
        happen. We do not expect anything good to come out of this since for
        now lttng-tools(2.10) no versionning exist between sessiond and
        consumerd.
    """

    nb_event = 100
コード例 #12
0
ファイル: test_output_path.py プロジェクト: lttng/lttng-ivc
    ("lttng-tools-2.12", "lttng-tools-2.13"),
    ("lttng-tools-2.13", "lttng-tools-2.7"),
    ("lttng-tools-2.13", "lttng-tools-2.8"),
    ("lttng-tools-2.13", "lttng-tools-2.9"),
    ("lttng-tools-2.13", "lttng-tools-2.10"),
    ("lttng-tools-2.13", "lttng-tools-2.11"),
    ("lttng-tools-2.13", "lttng-tools-2.12"),
    ("lttng-tools-2.13", "lttng-tools-2.13"),
]
"""
Generate tuple for uid and pid mode.
"""
test_matrix_relayd = [tup + ("uid", ) for tup in matrix_relayd
                      ] + [tup + ("pid", ) for tup in matrix_relayd]

runtime_matrix_base = Settings.generate_runtime_test_matrix(
    test_matrix_base, [0])
runtime_matrix_relayd = Settings.generate_runtime_test_matrix(
    test_matrix_relayd, [0, 1])
"""
Generate tuple for relayd test involving snapshot:
This is needed due to:
    commit 10d653513d572b8727d6935767a96c9dd82e4fe2
    Author: Julien Desfossez <*****@*****.**>
    Date:   Wed Aug 30 14:06:42 2017 -0400

    Fix: path of snapshots with a relay and default URI

    When recording a snapshot to a relay without custom URI (ex:
    net://localhost vs net://localhost/custom), the snapshots end up being
    stored in ~/lttng-traces/<hostname>/snapshot-XXX instead of being inside
    the <session-name> folder like on local snapshots. We would expect the