Esempio n. 1
0
 def testGetErrorClass(self):
     self.assertEqual(self.errorclasses[0], 0)
     for ierr in self.errorclasses:
         errcls = MPI.Get_error_class(ierr)
         self.assertTrue(errcls >= MPI.SUCCESS)
         self.assertTrue(errcls < MPI.ERR_LASTCODE)
         self.assertEqual(errcls, ierr)
Esempio n. 2
0
 def testException(self):
     success = MPI.Exception(MPI.SUCCESS)
     lasterr = MPI.Exception(MPI.ERR_LASTCODE)
     for ierr in self.errorclasses:
         errstr = MPI.Get_error_string(ierr)
         errcls = MPI.Get_error_class(ierr)
         errexc = MPI.Exception(ierr)
         self.assertEqual(errexc.error_code, ierr)
         self.assertEqual(errexc.error_class, ierr)
         self.assertEqual(errexc.error_string, errstr)
         self.assertEqual(repr(errexc), "MPI.Exception(%d)" % ierr)
         self.assertEqual(str(errexc), errstr)
         self.assertEqual(int(errexc), ierr)
         self.assertEqual(hash(errexc), hash(errexc.error_code))
         self.assertTrue(errexc == ierr)
         self.assertTrue(errexc == errexc)
         self.assertFalse(errexc != ierr)
         self.assertFalse(errexc != errexc)
         self.assertTrue(success <= ierr <= lasterr)
         self.assertTrue(success <= errexc <= lasterr)
         self.assertTrue(errexc >= ierr)
         self.assertTrue(errexc >= success)
         self.assertTrue(lasterr >= ierr)
         self.assertTrue(lasterr >= errexc)
         if errexc == success:
             self.assertFalse(errexc)
         else:
             self.assertTrue(errexc)
             self.assertTrue(errexc > success)
             self.assertTrue(success < errexc)
     exc = MPI.Exception(MPI.SUCCESS - 1)
     self.assertTrue(exc, MPI.ERR_UNKNOWN)
     exc = MPI.Exception(MPI.ERR_LASTCODE + 1)
     self.assertTrue(exc, MPI.ERR_UNKNOWN)
Esempio n. 3
0
 def testAddErrorClassCodeString(self):
     try:
         errclass = MPI.Add_error_class()
     except NotImplementedError:
         self.skipTest('mpi-add_error_class')
     lastused = MPI.COMM_WORLD.Get_attr(MPI.LASTUSEDCODE)
     self.assertTrue(errclass == lastused)
     errstr = MPI.Get_error_string(errclass)
     self.assertEqual(errstr, "")
     MPI.Add_error_string(errclass, "error class")
     self.assertEqual(MPI.Get_error_string(errclass), "error class")
     errcode1 = MPI.Add_error_code(errclass)
     errstr = MPI.Get_error_string(errcode1)
     self.assertEqual(errstr, "")
     MPI.Add_error_string(errcode1, "error code 1")
     self.assertEqual(MPI.Get_error_class(errcode1), errclass)
     self.assertEqual(MPI.Get_error_string(errcode1), "error code 1")
     errcode2 = MPI.Add_error_code(errclass)
     errstr = MPI.Get_error_string(errcode2)
     self.assertEqual(errstr, "")
     MPI.Add_error_string(errcode2, "error code 2")
     self.assertEqual(MPI.Get_error_class(errcode2), errclass)
     self.assertEqual(MPI.Get_error_string(errcode2), "error code 2")
Esempio n. 4
0
 def testException(self):
     from sys import version_info as py_version
     for ierr in self.errorclasses:
         errstr = MPI.Get_error_string(ierr)
         errcls = MPI.Get_error_class(ierr)
         errexc = MPI.Exception(ierr)
         if py_version >= (2, 5):
             self.assertEqual(errexc.error_code, ierr)
             self.assertEqual(errexc.error_class, ierr)
             self.assertEqual(errexc.error_string, errstr)
         self.assertEqual(str(errexc), errstr)
         self.assertEqual(int(errexc), ierr)
         self.assertTrue(errexc == ierr)
         self.assertTrue(errexc == errexc)
         self.assertFalse(errexc != ierr)
         self.assertFalse(errexc != errexc)
Esempio n. 5
0
    assert eh == MPI.ERRHANDLER_NULL
    # recover the default errhandler
    obj.Set_errhandler(default_eh)
    # call error hander MPI.ERR_OTHER, which is known error not in list
    obj.Call_errhandler(MPI.ERR_OTHER)

fh.Close()

# error class, error code, error string
# add a new error class
errclass = MPI.Add_error_class()
# add an error code to the new error class
errcode = MPI.Add_error_code(errclass)
# associate an error string with an the error errorcode
MPI.Add_error_string(errcode, 'Example error string')
print 'The new error class:', MPI.Get_error_class(errcode)
print 'The new error string:', MPI.Get_error_string(errcode)

# MPI.Exception
# errexc = MPI.Exception(errclass)
# create an MPI.Exception object from MPI.ERR_OTHER
errexc = MPI.Exception(MPI.ERR_OTHER)
print 'MPI.Exception is a subclass of RuntimeError:', isinstance(
    errexc, RuntimeError)
print 'Error class of MPI.ERR_OTHER:', errexc.Get_error_class()
print 'Error code of MPI.ERR_OTHER:', errexc.Get_error_code()
print 'Error string of MPI.ERR_OTHER:', errexc.Get_error_string()

# show exception catch
try:
    # try to free MPI.COMM_WORLD