code: def testWaitAll(self):
      comm = self.COMM
      size = comm.Get_size()
      rank = comm.Get_rank()
      dest = (rank + 1) % size
      source = (rank - 1) % size
      #
      requests = []
      for smess in messages:
          req = comm.issend(smess, dest)
          requests.append(req)
      flag, _ = self.RequestType.testall(requests)
      self.assertFalse(flag)
      flag, obj = self.RequestType.testall(requests)
      self.assertFalse(flag)
      self.assertIsNone(obj)
      comm.barrier()
      for smess in messages:
          rmess = comm.recv(None, source)
          self.assertEqual(rmess, smess)
      obj = self.RequestType.waitall(requests)
      self.assertEqual(obj, [None] * len(messages))
      #
      requests1 = []
      for smess in messages:
          req = comm.issend(smess, dest)
          requests1.append(req)
      requests2 = []
      for _ in messages:
          req = comm.mprobe(source).irecv()
          requests2.append(req)
      statuses = [MPI.Status()]
      obj = self.RequestType.waitall(requests2, statuses)
      self.assertEqual(obj, messages)
      self.assertEqual(len(statuses), len(requests2))
      for status in statuses:
          self.assertEqual(status.source, source)
          self.assertEqual(status.tag, 0)
          self.assertGreater(status.Get_count(), 0)
      comm.barrier()
      statuses = (MPI.Status(),)
      self.RequestType.waitall(requests1, statuses)
      self.assertEqual(statuses[0].error, 0)
  
imports: from mpi4py import MPI
  from mpi4py.util import pkl5
  import sys, os
label_desc: Use image node_id 12 for calling the BaseTest obj's underlying member method code with example usage: obj.testWaitAll() without return types