Test library load/unload events
[lttng-tools.git] / tests / regression / ust / ust-dl / test_ust-dl.py
index d9bc60a75bc27dd1a22c84ce7802ea3526f49b1c..e60a65a9331e8771cc8be9f832e51493d032ea4e 100644 (file)
@@ -31,7 +31,7 @@ sys.path.append(test_utils_path)
 from test_utils import *
 
 
-NR_TESTS = 6
+NR_TESTS = 11
 current_test = 1
 print("1..{0}".format(NR_TESTS))
 
@@ -64,42 +64,86 @@ try:
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.", session_info)
 
-dlopen_event_found = False
-build_id_event_found = False
-debug_link_event_found = False
-dlclose_event_found = False
+dlopen_event_found = 0
+dlmopen_event_found = 0
+build_id_event_found = 0
+debug_link_event_found = 0
+dlclose_event_found = 0
+load_event_found = 0
+load_build_id_event_found = 0
+load_debug_link_event_found = 0
+unload_event_found = 0
+load_libfoo_found = 0
+load_libbar_found = 0
+load_libzzz_found = 0
 
 for event_line in babeltrace_process.stdout:
-    # Let babeltrace finish to get the return code
-    if dlopen_event_found and build_id_event_found and \
-       debug_link_event_found and dlclose_event_found:
-        continue
 
     event_line = event_line.decode('utf-8').replace("\n", "")
     if re.search(r".*lttng_ust_dl:dlopen.*", event_line) is not None:
-        dlopen_event_found = True
+        dlopen_event_found += 1
+    elif re.search(r".*lttng_ust_dl:dlmopen.*", event_line) is not None:
+        dlmopen_event_found += 1
     elif re.search(r".*lttng_ust_dl:build_id.*", event_line) is not None:
-        build_id_event_found = True
+        build_id_event_found += 1
     elif re.search(r".*lttng_ust_dl:debug_link.*", event_line) is not None:
-        debug_link_event_found = True
+        debug_link_event_found += 1
     elif re.search(r".*lttng_ust_dl:dlclose.*", event_line) is not None:
-        dlclose_event_found = True
+        dlclose_event_found += 1
+    elif re.search(r".*lttng_ust_lib:build_id.*", event_line) is not None:
+        load_build_id_event_found += 1
+    elif re.search(r".*lttng_ust_lib:debug_link.*", event_line) is not None:
+        load_debug_link_event_found += 1
+    elif re.search(r".*lttng_ust_lib:unload.*", event_line) is not None:
+        unload_event_found += 1
+    elif re.search(r".*lttng_ust_lib:load.*", event_line) is not None:
+        load_event_found += 1
+        if re.search(r".*lttng_ust_lib:load.*libfoo.*", event_line) is not None:
+            load_libfoo_found += 1
+        elif re.search(r".*lttng_ust_lib:load.*libbar.*", event_line) is not None:
+            load_libbar_found += 1
+        elif re.search(r".*lttng_ust_lib:load.*libzzz.*", event_line) is not None:
+            load_libzzz_found += 1
 
 babeltrace_process.wait()
 
 print_test_result(babeltrace_process.returncode == 0, current_test, "Resulting trace is readable")
 current_test += 1
 
-print_test_result(dlopen_event_found, current_test, "lttng_ust_dl:dlopen event found in resulting trace")
+print_test_result(dlopen_event_found > 0, current_test, "lttng_ust_dl:dlopen event found in resulting trace")
 current_test += 1
 
-print_test_result(build_id_event_found, current_test, "lttng_ust_dl:build_id event found in resulting trace")
+print_test_result(dlmopen_event_found > 0, current_test, "lttng_ust_dl:dlmopen event found in resulting trace")
 current_test += 1
 
-print_test_result(debug_link_event_found, current_test, "lttng_ust_dl:debug_link event found in resulting trace")
+print_test_result(build_id_event_found > 0, current_test, "lttng_ust_dl:build_id event found in resulting trace")
 current_test += 1
 
-print_test_result(dlclose_event_found, current_test, "lttng_ust_dl:dlclose event found in resulting trace")
+print_test_result(debug_link_event_found > 0, current_test, "lttng_ust_dl:debug_link event found in resulting trace")
+current_test += 1
+
+print_test_result(dlclose_event_found > 0, current_test, "lttng_ust_dl:dlclose event found in resulting trace")
+current_test += 1
+
+print_test_result(load_event_found > 0, current_test, "lttng_ust_lib:load event found in resulting trace")
+current_test += 1
+
+print_test_result(load_build_id_event_found > 0, current_test, "lttng_ust_lib:build_id event found in resulting trace")
+current_test += 1
+
+print_test_result(load_debug_link_event_found > 0, current_test, "lttng_ust_lib:debug_link event found in resulting trace")
+current_test += 1
+
+print_test_result(unload_event_found == 3, current_test, "lttng_ust_lib:unload event found 3 times in resulting trace")
+current_test += 1
+
+print_test_result(load_libfoo_found == 1, current_test, "lttng_ust_lib:load libfoo.so event found once in resulting trace")
+current_test += 1
+
+print_test_result(load_libbar_found == 1, current_test, "lttng_ust_lib:load libbar.so event found once in resulting trace")
+current_test += 1
+
+print_test_result(load_libzzz_found == 1, current_test, "lttng_ust_lib:load libzzz.so event found once in resulting trace")
 current_test += 1
 
 shutil.rmtree(session_info.tmp_directory)
This page took 0.025389 seconds and 5 git commands to generate.