code: def test_run_async_exit_code(self):
      def run_with_exit_code_0(process_idx):
          sys.exit(0)
  
      def run_with_exit_code_11(process_idx):
          os.kill(os.getpid(), signal.SIGSEGV)
  
      with warnings.catch_warnings(record=True) as ws:
          async_.run_async(4, run_with_exit_code_0)
          # There should be no AbnormalExitWarning
          self.assertEqual(
              sum(
                  1
                  if issubclass(w.category, async_.AbnormalExitWarning)
                  else 0
                  for w in ws
              ),
              0,
          )
  
      with warnings.catch_warnings(record=True) as ws:
          async_.run_async(4, run_with_exit_code_11)
          # There should be 4 AbnormalExitWarning
          self.assertEqual(
              sum(
                  1
                  if issubclass(w.category, async_.AbnormalExitWarning)
                  else 0
                  for w in ws
              ),
              4,
          )
  
imports: import multiprocessing
  import os
  import signal
  import sys
  import unittest
  import warnings
  import chainer
  import chainer.links
  from chainer import optimizers
  import copy
  import numpy
  import chainerrl
  from chainerrl.misc import async_
label_desc: Use image node_id 9 for calling the TestAsync obj's underlying member method code with example usage: obj.test_run_async_exit_code() without return types