code: def testMProbe(self):
      comm = self.COMM.Dup()
      try:
          message = comm.mprobe(MPI.PROC_NULL)
          self.assertIsInstance(message, self.MessageType)
          self.assertTrue(bool(message == MPI.MESSAGE_NO_PROC))
          self.assertFalse(bool(message != MPI.MESSAGE_NO_PROC))
          self.assertTrue(bool(message != None))
          self.assertFalse(bool(message == None))
          rmess = message.recv()
          self.assertTrue(bool(message == MPI.MESSAGE_NULL))
          self.assertFalse(bool(message != MPI.MESSAGE_NULL))
          self.assertIsNone(rmess)
  
          message = comm.mprobe(MPI.PROC_NULL)
          self.assertIsInstance(message, self.MessageType)
          self.assertTrue(bool(message == MPI.MESSAGE_NO_PROC))
          self.assertFalse(bool(message != MPI.MESSAGE_NO_PROC))
          request = message.irecv()
          self.assertTrue(bool(message == MPI.MESSAGE_NULL))
          self.assertFalse(bool(message != MPI.MESSAGE_NULL))
          self.assertTrue(bool(request != MPI.REQUEST_NULL))
          self.assertFalse(bool(request == MPI.REQUEST_NULL))
          rmess = request.wait()
          self.assertTrue(bool(request == MPI.REQUEST_NULL))
          self.assertFalse(bool(request != MPI.REQUEST_NULL))
          self.assertIsNone(rmess)
  
          for smess in messages:
              request = comm.issend(smess, comm.rank, 123)
              message = comm.mprobe(comm.rank, 123)
              self.assertIsInstance(message, self.MessageType)
              self.assertTrue(
                  bool(message == self.MessageType(message))
              )
              self.assertFalse(
                  bool(message != self.MessageType(message))
              )
              rmess = message.recv()
              self.assertEqual(rmess, smess)
              obj = request.wait()
              self.assertFalse(request)
              self.assertIsNone(obj)
              flag, obj = request.test()
              self.assertTrue(flag)
              self.assertIsNone(obj)
          for smess in messages:
              request = comm.issend(smess, comm.rank, 123)
              status = MPI.Status()
              message = comm.mprobe(MPI.ANY_SOURCE, MPI.ANY_TAG, status)
              self.assertEqual(status.source, comm.rank)
              self.assertEqual(status.tag, 123)
              self.assertTrue(message)
              status = MPI.Status()
              rmess = message.recv(status)
              self.assertFalse(message)
              self.assertEqual(status.source, comm.rank)
              self.assertEqual(status.tag, 123)
              self.assertEqual(rmess, smess)
              self.assertTrue(request)
              request.wait()
          for smess in messages:
              request = comm.issend(smess, comm.rank, 123)
              status = MPI.Status()
              message = comm.mprobe(MPI.ANY_SOURCE, MPI.ANY_TAG, status)
              self.assertEqual(status.source, comm.rank)
              self.assertEqual(status.tag, 123)
              self.assertTrue(message)
              rreq = message.irecv()
              self.assertFalse(message)
              self.assertTrue(rreq)
              status = MPI.Status()
              rmess = rreq.wait(status)
              self.assertFalse(rreq)
              self.assertEqual(status.source, comm.rank)
              self.assertEqual(status.tag, 123)
              self.assertEqual(rmess, smess)
              flag, obj = rreq.test()
              self.assertTrue(flag)
              self.assertIsNone(obj)
              self.assertTrue(request)
              obj = request.wait()
              self.assertFalse(request)
              self.assertIsNone(obj)
              flag, obj = request.test()
              self.assertTrue(flag)
              self.assertIsNone(obj)
          for smess in messages:
              request = comm.issend(smess, comm.rank, 123)
              message = comm.mprobe(MPI.ANY_SOURCE, MPI.ANY_TAG)
              rreq = message.irecv()
              rreq.test()
              request.Free()
      finally:
          comm.Free()
  
imports: from mpi4py import MPI
  from mpi4py.util import pkl5
  import sys, os
label_desc: Use image node_id 17 for calling the BaseTest obj's underlying member method code with example usage: obj.testMProbe() without return types