@@ -306,6 +306,7 @@ defmodule Logger.TranslatorTest do
306306
307307 test "translates Task crashes" do
308308 { :ok , pid } = Task . start_link ( __MODULE__ , :task , [ self ( ) ] )
309+ parent = self ( )
309310
310311 assert capture_log ( fn ->
311312 ref = Process . monitor ( pid )
@@ -324,6 +325,7 @@ defmodule Logger.TranslatorTest do
324325
325326 assert { % RuntimeError { message: "oops" } , [ _ | _ ] } = task_metadata [ :crash_reason ]
326327 assert { % RuntimeError { message: "oops" } , [ _ | _ ] } = process_metadata [ :crash_reason ]
328+ assert [ parent ] == task_metadata [ :callers ]
327329
328330 refute Keyword . has_key? ( task_metadata , :initial_call )
329331 assert process_metadata [ :initial_call ] == { Logger.TranslatorTest , :task , 1 }
@@ -332,6 +334,7 @@ defmodule Logger.TranslatorTest do
332334 test "translates Task async_stream crashes with neighbour" do
333335 fun = fn -> Task . async_stream ( [ :oops ] , :erlang , :error , [ ] ) |> Enum . to_list ( ) end
334336 { :ok , pid } = Task . start ( __MODULE__ , :task , [ self ( ) , fun ] )
337+ parent = self ( )
335338
336339 assert capture_log ( :debug , fn ->
337340 ref = Process . monitor ( pid )
@@ -345,12 +348,15 @@ defmodule Logger.TranslatorTest do
345348
346349 assert_receive { :error , _pid , { Logger , [ "Task " <> _ | _ ] , _ts , task_metadata } }
347350 assert_receive { :error , _pid , { Logger , [ "Process " | _ ] , _ts , process_metadata } }
351+ assert [ pid , parent ] == task_metadata [ :callers ]
348352
349353 assert { :oops , [ _ | _ ] } = task_metadata [ :crash_reason ]
350354 assert { % ErlangError { original: :oops } , [ _ | _ ] } = process_metadata [ :crash_reason ]
351355 end
352356
353357 test "translates Task undef module crash" do
358+ parent = self ( )
359+
354360 assert capture_log ( fn ->
355361 { :ok , pid } = Task . start ( :module_does_not_exist , :undef , [ ] )
356362 ref = Process . monitor ( pid )
@@ -365,12 +371,15 @@ defmodule Logger.TranslatorTest do
365371
366372 assert_receive { :error , _pid , { Logger , [ "Task " <> _ | _ ] , _ts , task_metadata } }
367373 assert_receive { :error , _pid , { Logger , [ "Process " | _ ] , _ts , process_metadata } }
374+ assert [ parent ] == task_metadata [ :callers ]
368375
369376 assert { % UndefinedFunctionError { function: :undef } , [ _ | _ ] } = task_metadata [ :crash_reason ]
370377 assert { % UndefinedFunctionError { function: :undef } , [ _ | _ ] } = process_metadata [ :crash_reason ]
371378 end
372379
373380 test "translates Task undef function crash" do
381+ parent = self ( )
382+
374383 assert capture_log ( fn ->
375384 { :ok , pid } = Task . start ( __MODULE__ , :undef , [ ] )
376385 ref = Process . monitor ( pid )
@@ -385,12 +394,15 @@ defmodule Logger.TranslatorTest do
385394
386395 assert_receive { :error , _pid , { Logger , [ "Task " <> _ | _ ] , _ts , task_metadata } }
387396 assert_receive { :error , _pid , { Logger , [ "Process " | _ ] , _ts , process_metadata } }
397+ assert [ parent ] == task_metadata [ :callers ]
388398
389399 assert { % UndefinedFunctionError { function: :undef } , [ _ | _ ] } = task_metadata [ :crash_reason ]
390400 assert { % UndefinedFunctionError { function: :undef } , [ _ | _ ] } = process_metadata [ :crash_reason ]
391401 end
392402
393403 test "translates Task raising ErlangError" do
404+ parent = self ( )
405+
394406 assert capture_log ( fn ->
395407 exception =
396408 try do
@@ -413,12 +425,15 @@ defmodule Logger.TranslatorTest do
413425
414426 assert_receive { :error , _pid , { Logger , [ "Task " <> _ | _ ] , _ts , task_metadata } }
415427 assert_receive { :error , _pid , { Logger , [ "Process " | _ ] , _ts , process_metadata } }
428+ assert [ parent ] == task_metadata [ :callers ]
416429
417430 assert { % ErlangError { original: :foo } , [ _ | _ ] } = task_metadata [ :crash_reason ]
418431 assert { % ErlangError { original: :foo } , [ _ | _ ] } = process_metadata [ :crash_reason ]
419432 end
420433
421434 test "translates Task raising Erlang badarg error" do
435+ parent = self ( )
436+
422437 assert capture_log ( fn ->
423438 { :ok , pid } = Task . start ( :erlang , :error , [ :badarg ] )
424439 ref = Process . monitor ( pid )
@@ -433,12 +448,15 @@ defmodule Logger.TranslatorTest do
433448
434449 assert_receive { :error , _pid , { Logger , [ "Task " <> _ | _ ] , _ts , task_metadata } }
435450 assert_receive { :error , _pid , { Logger , [ "Process " | _ ] , _ts , process_metadata } }
451+ assert [ parent ] == task_metadata [ :callers ]
436452
437453 assert { % ArgumentError { message: "argument error" } , [ _ | _ ] } = task_metadata [ :crash_reason ]
438454 assert { % ArgumentError { message: "argument error" } , [ _ | _ ] } = process_metadata [ :crash_reason ]
439455 end
440456
441457 test "translates Task exiting abnormally" do
458+ parent = self ( )
459+
442460 assert capture_log ( fn ->
443461 { :ok , pid } = Task . start ( :erlang , :exit , [ :abnormal ] )
444462 ref = Process . monitor ( pid )
@@ -453,6 +471,7 @@ defmodule Logger.TranslatorTest do
453471
454472 assert_receive { :error , _pid , { Logger , [ "Task " <> _ | _ ] , _ts , task_metadata } }
455473 assert_receive { :error , _pid , { Logger , [ "Process " | _ ] , _ts , process_metadata } }
474+ assert [ parent ] == task_metadata [ :callers ]
456475
457476 assert { :abnormal , [ _ | _ ] } = task_metadata [ :crash_reason ]
458477 assert { :abnormal , [ _ | _ ] } = process_metadata [ :crash_reason ]
@@ -625,8 +644,9 @@ defmodule Logger.TranslatorTest do
625644 """
626645 end
627646
628- test "translates :proc_lib crashes on debug" do
647+ test "translates :proc_lib+Task crashes on debug" do
629648 { :ok , pid } = Task . start_link ( __MODULE__ , :task , [ self ( ) ] )
649+ parent = self ( )
630650
631651 assert capture_log ( :debug , fn ->
632652 ref = Process . monitor ( pid )
@@ -652,13 +672,15 @@ defmodule Logger.TranslatorTest do
652672 assert process_metadata [ :pid ] == task_metadata [ :pid ]
653673 assert is_list ( process_metadata [ :callers ] )
654674 assert is_list ( process_metadata [ :ancestors ] )
675+ assert [ parent ] == task_metadata [ :callers ]
655676
656677 assert { % RuntimeError { message: "oops" } , [ _ | _ ] } = task_metadata [ :crash_reason ]
657678 assert { % RuntimeError { message: "oops" } , [ _ | _ ] } = process_metadata [ :crash_reason ]
658679 end
659680
660- test "translates :proc_lib crashes with neighbour on debug" do
681+ test "translates :proc_lib+Task crashes with neighbour on debug" do
661682 { :ok , pid } = Task . start_link ( __MODULE__ , :sub_task , [ self ( ) ] )
683+ parent = self ( )
662684
663685 assert capture_log ( :debug , fn ->
664686 ref = Process . monitor ( pid )
@@ -677,6 +699,9 @@ defmodule Logger.TranslatorTest do
677699 Current Stacktrace:
678700 (lib/logger/)?test/logger/translator_test.exs:\d +: Logger.TranslatorTest.sleep/1
679701 """
702+
703+ assert_receive { :error , _pid , { Logger , [ "Task " <> _ | _ ] , _ts , task_metadata } }
704+ assert [ parent ] == task_metadata [ :callers ]
680705 end
681706
682707 test "translates Supervisor progress" do
0 commit comments