diff options
Diffstat (limited to 'tests/storage/devicelibs/baseclass.py')
-rw-r--r-- | tests/storage/devicelibs/baseclass.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/storage/devicelibs/baseclass.py b/tests/storage/devicelibs/baseclass.py new file mode 100644 index 000000000..d1264f5b6 --- /dev/null +++ b/tests/storage/devicelibs/baseclass.py @@ -0,0 +1,43 @@ +import unittest +import os +import subprocess + +class TestDevicelibs(unittest.TestCase): + + _LOOP_DEVICES = (("/dev/loop0", "/tmp/test-virtdev0"), + ("/dev/loop1", "/tmp/test-virtdev1")) + + ((_LOOP_DEV0, _LOOP_FILE0), (_LOOP_DEV1, _LOOP_FILE1)) = _LOOP_DEVICES + + def setUp(self): + for dev, file in self._LOOP_DEVICES: + proc = subprocess.Popen(["dd", "if=/dev/zero", "of=%s" % file, "bs=1024", "count=102400"]) + while True: + proc.communicate() + if proc.returncode is not None: + rc = proc.returncode + break + if rc: + raise OSError, "dd failed creating the file %s" % file + + proc = subprocess.Popen(["losetup", dev, file]) + while True: + proc.communicate() + if proc.returncode is not None: + rc = proc.returncode + break + if rc: + raise OSError, "losetup failed setting up the loop device %s" % dev + + def tearDown(self): + for dev, file in self._LOOP_DEVICES: + proc = subprocess.Popen(["losetup", "-d", dev]) + while True: + proc.communicate() + if proc.returncode is not None: + rc = proc.returncode + break + if rc: + raise OSError, "losetup failed removing the loop device %s" % dev + + os.remove(file) |