code: def testIRecvAndBSend(self):
      comm = self.COMM
      rank = comm.Get_rank()
      buf = MPI.Alloc_mem((1 << 16) + MPI.BSEND_OVERHEAD)
      MPI.Attach_buffer(buf)
      try:
          for smess in messages:
              src = dst = rank
              req1 = comm.irecv(None, src, 1)
              req2 = comm.irecv(None, src, 2)
              req3 = comm.irecv(None, src, 3)
              comm.bsend(smess, dst, 3)
              comm.bsend(smess, dst, 2)
              comm.bsend(smess, dst, 1)
              self.assertEqual(smess, req3.wait())
              self.assertEqual(smess, req2.wait())
              self.assertEqual(smess, req1.wait())
              comm.bsend(smess, MPI.PROC_NULL, 3)
      finally:
          MPI.Detach_buffer()
          MPI.Free_mem(buf)
  
imports: from mpi4py import MPI
  import mpiunittest
  import threading
  import warnings
  import sys
label_desc: Use image node_id 10 for calling the BaseTestP2PObj obj's underlying member method code with example usage: obj.testIRecvAndBSend() without return types