summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Stephenson <mattstep@mattstep.net>2012-04-03 14:38:09 -0700
committerMatt Stephenson <mattstep@mattstep.net>2012-04-03 14:43:10 -0700
commitcf7c0a7c10723495953be9bf99aedbe3838e0787 (patch)
tree96397f2f24221223adf5e3bbf1b69baea69d71b0
parentadb212405684c798464861f6e188db3de0f04605 (diff)
Get unit tests functional in OS X
* Add detection for directio to ensure the python runtime is built with O_DIRECT * Extend stubbing in test_libvirt to also stub out _supports_direct_io Change-Id: Id793d4039311396f0b3c3a52d2a1d951ec3c5e48
-rw-r--r--nova/tests/test_libvirt.py6
-rw-r--r--nova/virt/libvirt/connection.py6
2 files changed, 12 insertions, 0 deletions
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index 4eea7b0b3..b16f1060a 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -882,6 +882,12 @@ class LibvirtConnTestCase(test.TestCase):
self.stubs.Set(os, 'open', os_open_stub)
+ def connection_supports_direct_io_stub(*args, **kwargs):
+ return directio_supported
+
+ self.stubs.Set(connection.LibvirtConnection,
+ '_supports_direct_io', connection_supports_direct_io_stub)
+
user_context = context.RequestContext(self.user_id, self.project_id)
instance_ref = db.instance_create(user_context, self.test_instance)
network_info = _fake_network_info(self.stubs, 1)
diff --git a/nova/virt/libvirt/connection.py b/nova/virt/libvirt/connection.py
index ac286a768..d1a2d0bfa 100644
--- a/nova/virt/libvirt/connection.py
+++ b/nova/virt/libvirt/connection.py
@@ -984,7 +984,13 @@ class LibvirtConnection(driver.ComputeDriver):
@staticmethod
def _supports_direct_io(dirpath):
+
+ if not hasattr(os, 'O_DIRECT'):
+ LOG.debug("This python runtime does not support direct I/O")
+ return False
+
testfile = os.path.join(dirpath, ".directio.test")
+
hasDirectIO = True
try:
f = os.open(testfile, os.O_CREAT | os.O_WRONLY | os.O_DIRECT)