summaryrefslogtreecommitdiffstats
path: root/test/functional/libgfapi-python-tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/libgfapi-python-tests.py')
-rw-r--r--test/functional/libgfapi-python-tests.py48
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)