code: def test_stdout_available_when_timeout(self):
      def fn():
          logging.info("something printed")
          time.sleep(10000)  # Intentionally make the test timeout.
  
      with self.assertRaises(
          multi_process_runner.SubprocessTimeoutError
      ) as cm:
          mpr = multi_process_runner.MultiProcessRunner(
              fn,
              multi_worker_test_base.create_cluster_spec(num_workers=1),
              return_output=True,
          )
          mpr.start()
          mpr.join(timeout=60)
      mpr.terminate_all()
  
      list_to_assert = cm.exception.mpr_result.stdout
      self.assertTrue(
          any("something printed" in line for line in list_to_assert)
      )
  
imports: import ctypes
  import json
  import os
  import sys
  import threading
  import time
  import unittest
  from absl import logging
  from absl.testing import parameterized
  from tensorflow.python.distribute import combinations
  from tensorflow.python.distribute import multi_process_runner
  from tensorflow.python.distribute import multi_worker_test_base
  from tensorflow.python.eager import context
  from tensorflow.python.eager import test
label_desc: Use image node_id 14 for calling the MultiProcessRunnerTest obj's underlying member method code with example usage: obj.test_stdout_available_when_timeout() without return types