fix: relayd: unaligned access in trace_chunk_registry_ht_key_hash
[lttng-tools.git] / tests / regression / ust / ust-constructor / test_ust_constructor_c_dynamic.py
1 #!/usr/bin/env python3
2 #
3 # SPDX-FileCopyrightText: Kienan Stewart <kstewart@efficios.com>
4 # SPDX-License-Identifier: GPL-2.0-only
5 #
6
7 """
8 Test instrumentation coverage of C constructors and destructors by LTTng-UST
9 tracepoints with a dynamic object.
10
11 This test successively sets up a session, traces a test application, and then
12 reads the resulting trace to determine if all the expected events are present.
13 """
14
15 import copy
16 import pathlib
17 import sys
18
19 # Import in-tree test utils
20 test_utils_import_path = pathlib.Path(__file__).absolute().parents[3] / "utils"
21 sys.path.append(str(test_utils_import_path))
22
23 import lttngtest
24 import ust_constructor_common as ust
25
26 test = {
27 "description": "Test user space constructor/destructor instrumentation coverage (C w/ dynamic object)",
28 "application": "gen-ust-events-constructor/gen-ust-events-c-constructor-so",
29 "expected_events": copy.deepcopy(
30 ust.expected_events_common + ust.expected_events_tp_so
31 ),
32 # This application is not be built when `NO_SHARED` is set in the
33 # configuration options.
34 "skip_if_application_not_present": True,
35 }
36
37 tap = lttngtest.TapGenerator(7 + len(test["expected_events"]))
38 with lttngtest.test_environment(with_sessiond=True, log=tap.diagnostic) as test_env:
39 try:
40 outputlocation = ust.capture_trace(
41 tap, test_env, test["application"], test["description"]
42 )
43 except FileNotFoundError as fne:
44 tap.diagnostic(fne)
45 if test["skip_if_application_not_present"]:
46 tap.skip(
47 "Test application '{}' not found".format(test["application"]),
48 tap.remaining_test_cases,
49 )
50 sys.exit(0)
51 # Warning: validate_trace mutates test['expected_events']
52 ust.validate_trace(outputlocation.path, tap, test["expected_events"])
53
54
55 sys.exit(0 if tap.is_successful else 1)
This page took 0.030156 seconds and 4 git commands to generate.