code: def testRevoke(self):
      comm = self.COMM
      is_intra = comm.Is_intra()
      try:
          comm.Revoke()
      except NotImplementedError:
          self.skipTest("mpi-comm_revoke")
      try:
          self.assertTrue(comm.Is_revoked())
      except NotImplementedError:
          pass
      #
      try:
          comm.Barrier()
      except MPI.Exception as exc:
          code = exc.Get_error_class()
      else:
          code = MPI.SUCCESS
      self.assertEqual(code, MPI.ERR_REVOKED)
      #
      try:
          comm.Send([None, 0, MPI.BYTE], MPI.PROC_NULL)
      except MPI.Exception as exc:
          code = exc.Get_error_class()
      else:
          code = MPI.SUCCESS
      self.assertEqual(code, MPI.ERR_REVOKED)
      #
      try:
          comm.Recv([None, 0, MPI.BYTE], MPI.PROC_NULL)
      except MPI.Exception as exc:
          code = exc.Get_error_class()
      else:
          code = MPI.SUCCESS
      self.assertEqual(code, MPI.ERR_REVOKED)
  
imports: from mpi4py import MPI
  import mpiunittest
  import warnings
  import struct
label_desc: Use image node_id 4 for calling the BaseTestULFM obj's underlying member method code with example usage: obj.testRevoke() without return types