| 14 | |
| 15 | |
| 16 | class BaseTestFile: |
| 17 | # |
| 18 | COMM = MPI.COMM_NULL |
| 19 | FILE = MPI.FILE_NULL |
| 20 | |
| 21 | prefix = "mpi4py" |
| 22 | |
| 23 | def setUp(self): |
| 24 | self.fname = pathlib.Path(maketemp(self.prefix)) |
| 25 | self.amode = MPI.MODE_RDWR | MPI.MODE_CREATE |
| 26 | # self.amode |= MPI.MODE_DELETE_ON_CLOSE |
| 27 | try: |
| 28 | self.FILE = MPI.File.Open( |
| 29 | self.COMM, |
| 30 | self.fname, |
| 31 | self.amode, |
| 32 | MPI.INFO_NULL, |
| 33 | ) |
| 34 | # self.fname=None |
| 35 | except Exception: |
| 36 | self.fname.unlink() |
| 37 | raise |
| 38 | |
| 39 | def tearDown(self): |
| 40 | if self.FILE == MPI.FILE_NULL: |
| 41 | return |
| 42 | amode = self.FILE.amode |
| 43 | self.FILE.Close() |
| 44 | if not (amode & MPI.MODE_DELETE_ON_CLOSE): |
| 45 | MPI.File.Delete(self.fname, MPI.INFO_NULL) |
| 46 | |
| 47 | @unittest.skipMPI("openmpi(==2.0.0)") |
| 48 | @unittest.skipMPI("MPICH2(<1.1.0)") |
| 49 | def testPreallocate(self): |
| 50 | size = self.FILE.Get_size() |
| 51 | self.assertEqual(size, 0) |
| 52 | self.FILE.Preallocate(1) |
| 53 | size = self.FILE.Get_size() |
| 54 | self.assertEqual(size, 1) |
| 55 | self.FILE.Preallocate(100) |
| 56 | size = self.FILE.Get_size() |
| 57 | self.assertEqual(size, 100) |
| 58 | self.FILE.Preallocate(10) |
| 59 | size = self.FILE.Get_size() |
| 60 | self.assertEqual(size, 100) |
| 61 | self.FILE.Preallocate(200) |
| 62 | size = self.FILE.Get_size() |
| 63 | self.assertEqual(size, 200) |
| 64 | |
| 65 | def testGetSetSize(self): |
| 66 | size = self.FILE.Get_size() |
| 67 | self.assertEqual(size, 0) |
| 68 | size = self.FILE.size |
| 69 | self.assertEqual(size, 0) |
| 70 | self.FILE.Set_size(100) |
| 71 | size = self.FILE.Get_size() |
| 72 | self.assertEqual(size, 100) |
| 73 | size = self.FILE.size |
no outgoing calls
searching dependent graphs…