File 0392-add-separate_sessions-test.patch of Package erlang
From 9d415ed98f60a02ebeb3a8f3b9a0dbbe1b317ad0 Mon Sep 17 00:00:00 2001
From: ruslandoga <ruslandoga+gh@icloud.com>
Date: Wed, 26 Mar 2025 20:44:03 +0300
Subject: [PATCH 2/5] add separate_sessions test
---
lib/tools/test/tprof_SUITE.erl | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/lib/tools/test/tprof_SUITE.erl b/lib/tools/test/tprof_SUITE.erl
index 873ce24a70..172559271f 100644
--- a/lib/tools/test/tprof_SUITE.erl
+++ b/lib/tools/test/tprof_SUITE.erl
@@ -33,6 +33,7 @@
sort/0, sort/1,
rootset/0, rootset/1,
set_on_spawn/0, set_on_spawn/1, seq/1,
+ separate_sessions/0, separate_sessions/1,
live_trace/0, live_trace/1,
patterns/0, patterns/1, pattern_fun/1, pattern_fun/2, pattern_fun/3,
processes/0, processes/1,
@@ -59,7 +60,7 @@ groups() ->
[{all, parallel(),
[call_time_ad_hoc, call_memory_ad_hoc,
call_memory_total, sort, rootset, set_on_spawn,
- code_load, code_reload,
+ code_load, code_reload, separate_sessions,
{group, default_session},
{group, custom_session}]},
{default_session,[],session()},
@@ -301,6 +302,30 @@ seq(Max) ->
{Pid, MRef} = spawn_monitor(fun () -> lists:seq(1, Max) end),
receive {'DOWN', MRef, process, Pid, normal} -> done end.
+separate_sessions() ->
+ [{doc, "Tests separate tprof sessions"}].
+
+separate_sessions(Config) when is_list(Config) ->
+ %% Trace lists:reverse/1
+ {ok, Srv1} = tprof:start_link(#{session => session1, type => call_memory}),
+ tprof:set_pattern(Srv1, lists, reverse, 1),
+ tprof:enable_trace(Srv1, self(), #{}),
+
+ %% Trace lists:map/2
+ {ok, Srv2} = tprof:start_link(#{session => session2, type => call_memory}),
+ tprof:set_pattern(Srv2, lists, map, 2),
+ tprof:enable_trace(Srv2, self(), #{}),
+
+ lists:reverse([1, 2, 3, 4, 5]),
+ lists:map(fun(X) -> X * 2 end, [1, 2, 3, 4, 5]),
+
+ Profile1 = tprof:collect(Srv1),
+ Profile2 = tprof:collect(Srv2),
+ ProcInspected1 = tprof:inspect(Profile1),
+ ProcInspected2 = tprof:inspect(Profile2),
+
+ ?assertNotEqual(ProcInspected1, ProcInspected2).
+
live_trace() ->
[{doc, "Tests memory tracing for pre-existing processes"}].
--
2.43.0