1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
from mpi4py import MPI
import mpiunittest as unittest
class TestErrhandler(unittest.TestCase):
def testPredefined(self):
self.assertFalse(MPI.ERRHANDLER_NULL)
self.assertTrue(MPI.ERRORS_ARE_FATAL)
self.assertTrue(MPI.ERRORS_RETURN)
def testCommGetSetErrhandler(self):
for COMM in [MPI.COMM_SELF, MPI.COMM_WORLD]:
for ERRHANDLER in [MPI.ERRORS_ARE_FATAL, MPI.ERRORS_RETURN,
MPI.ERRORS_ARE_FATAL, MPI.ERRORS_RETURN, ]:
errhdl_1 = COMM.Get_errhandler()
self.assertNotEqual(errhdl_1, MPI.ERRHANDLER_NULL)
COMM.Set_errhandler(ERRHANDLER)
errhdl_2 = COMM.Get_errhandler()
self.assertEqual(errhdl_2, ERRHANDLER)
errhdl_2.Free()
self.assertEqual(errhdl_2, MPI.ERRHANDLER_NULL)
COMM.Set_errhandler(errhdl_1)
errhdl_1.Free()
self.assertEqual(errhdl_1, MPI.ERRHANDLER_NULL)
def testGetErrhandler(self):
errhdls = []
for i in range(100):
e = MPI.COMM_WORLD.Get_errhandler()
errhdls.append(e)
for e in errhdls:
e.Free()
for e in errhdls:
self.assertEqual(e, MPI.ERRHANDLER_NULL)
if __name__ == '__main__':
unittest.main()
|