diff options
Diffstat (limited to 'test/functional/libgfapi-python-tests.py')
-rw-r--r-- | test/functional/libgfapi-python-tests.py | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/test/functional/libgfapi-python-tests.py b/test/functional/libgfapi-python-tests.py index 776390d..7eb4cd2 100644 --- a/test/functional/libgfapi-python-tests.py +++ b/test/functional/libgfapi-python-tests.py @@ -13,6 +13,7 @@ import unittest import os import types import errno +import threading from gluster.gfapi import File, Volume from gluster.exceptions import LibgfapiException @@ -132,7 +133,13 @@ class FileOpsTest(unittest.TestCase): # invalid mode self.assertRaises(ValueError, self.vol.fopen, "file", 'x+') # file does not exist - self.assertRaises(OSError, self.vol.fopen, "file", 'r') + try: + self.vol.fopen("file", "r") + except OSError as err: + if err.errno != errno.ENOENT: + self.fail("Expecting ENOENT") + else: + self.fail("Expecting ENOENT") def test_fopen(self): # Default permission should be 0666 @@ -197,6 +204,17 @@ class FileOpsTest(unittest.TestCase): f.lseek(0, os.SEEK_SET) self.assertEqual(f.read(), data + "hello world") + def test_fopen_in_thread(self): + def gluster_fopen(): + name = uuid4().hex + with self.vol.fopen(name, 'w') as f: + f.write('hello world') + + # the following caused segfault before the fix + thread = threading.Thread(target=gluster_fopen) + thread.start() + thread.join() + def test_create_file_already_exists(self): try: f = File(self.vol.open("newfile", os.O_CREAT)) @@ -278,7 +296,13 @@ class FileOpsTest(unittest.TestCase): def test_rename(self): newpath = self.path + ".rename" self.vol.rename(self.path, newpath) - self.assertRaises(OSError, self.vol.lstat, self.path) + try: + self.vol.lstat(self.path) + except OSError as err: + if err.errno != errno.ENOENT: + self.fail("Expecting ENOENT") + else: + self.fail("Expecting ENOENT") def test_stat(self): sb = self.vol.stat(self.path) @@ -287,7 +311,13 @@ class FileOpsTest(unittest.TestCase): def test_unlink(self): self.vol.unlink(self.path) - self.assertRaises(OSError, self.vol.lstat, self.path) + try: + self.vol.lstat(self.path) + except OSError as err: + if err.errno != errno.ENOENT: + self.fail("Expecting ENOENT") + else: + self.fail("Expecting ENOENT") def test_setxattr(self): value = "hello world" @@ -548,7 +578,7 @@ class DirOpsTest(unittest.TestCase): class TestVolumeInit(unittest.TestCase): - def test_mount_unmount_default(self): + def test_mount_umount_default(self): # Create volume object instance vol = Volume(HOST, VOLNAME) # Check attribute init @@ -563,18 +593,18 @@ class TestVolumeInit(unittest.TestCase): # Check mounted property self.assertTrue(vol.mounted) # Unmount the volume - vol.unmount() + vol.umount() # Check mounted property again self.assertFalse(vol.mounted) - # Do a double unmount - should not crash or raise exception - vol.unmount() + # Do a double umount - should not crash or raise exception + vol.umount() self.assertFalse(vol.mounted) # Do a double mount - should not crash or raise exception vol.mount() vol.mount() self.assertTrue(vol.mounted) # Unmount the volume - vol.unmount() + vol.umount() self.assertFalse(vol.mounted) def test_mount_err(self): @@ -608,5 +638,5 @@ class TestVolumeInit(unittest.TestCase): vol.set_logging(log_file2, 7) self.assertEqual(vol.log_file, log_file2) # Unmount the volume - vol.unmount() + vol.umount() self.assertFalse(vol.mounted) |