code: def test_trace_source_cond(self, records):
      from functorch.experimental.control_flow import cond
  
      def true_fn(x):
          return x * 2
  
      def false_fn(x):
          return x * 3
  
      def inner(pred, x):
          return cond(pred, true_fn, false_fn, [x])
  
      def outer(pred, x):
          return inner(pred, x)
  
      fn_opt = torch._dynamo.optimize("eager")(outer)
      fn_opt(torch.tensor(True), torch.ones(3, 3))
  
      found_x2 = False
      found_x3 = False
      for record in records:
          msg = record.getMessage()
          if "return x * 2" in msg:
              found_x2 = True
              self.assertIn("inline depth: 3", msg)
          if "return x * 3" in msg:
              found_x3 = True
              self.assertIn("inline depth: 3", msg)
  
      self.assertTrue(found_x2)
      self.assertTrue(found_x3)
  
imports: import atexit
  import contextlib
  import functools
  import logging
  import os
  import re
  import unittest.mock
  import torch
  import torch._dynamo.test_case
  import torch._dynamo.testing
  import torch.distributed
  from torch._dynamo.testing import skipIfNotPy311
  from torch.nn.parallel import DistributedDataParallel
  from torch.testing._internal.common_utils import find_free_port, munge_exc
  from torch.testing._internal.inductor_utils import HAS_CUDA
  from torch.testing._internal.logging_utils import LoggingTestCase, make_logging_test, make_settings_test
label_desc: Use image node_id 19 for calling the LoggingTests obj's underlying member method code with example usage: obj.test_trace_source_cond(records) and returns: unknown, unknown, cond, inner