]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[1704] Test remove_lock_files()
authorMukund Sivaraman <muks@isc.org>
Fri, 25 May 2012 06:29:29 +0000 (11:59 +0530)
committerMukund Sivaraman <muks@isc.org>
Fri, 25 May 2012 06:29:29 +0000 (11:59 +0530)
src/bin/bind10/bind10_src.py.in
src/bin/bind10/tests/Makefile.am
src/bin/bind10/tests/bind10_test.py.in

index 6b6bd64b08743bc1788c9696a50ae9ebeab33f56..0091eac591968767140dcc2120a1d9d38d62e9ac 100755 (executable)
@@ -1138,7 +1138,9 @@ def remove_lock_files():
         lpath = os.environ["B10_FROM_SOURCE_LOCALSTATEDIR"]
 
     for f in lockfiles:
-        os.unlink(lpath + '/' + f)
+        fname = lpath + '/' + f
+        if os.path.isfile(fname):
+            os.unlink(fname)
 
     return
 
index d54ee56be1aecf190cc42e041d154751ca5702f7..82958af82cfa8d11b6b465bbbd7ce71d5f268529 100644 (file)
@@ -23,6 +23,7 @@ endif
        chmod +x $(abs_builddir)/$$pytest ; \
        $(LIBRARY_PATH_PLACEHOLDER) \
        PYTHONPATH=$(COMMON_PYTHON_PATH):$(abs_top_srcdir)/src/bin:$(abs_top_builddir)/src/bin/bind10:$(abs_top_builddir)/src/lib/util/io/.libs \
+       LOCKFILE_TESTPATH=$(abs_top_builddir)/src/bin/bind10/tests/lockfile_test \
        BIND10_MSGQ_SOCKET_FILE=$(abs_top_builddir)/msgq_socket \
                $(PYCOVERAGE_RUN) $(abs_builddir)/$$pytest || exit ; \
        done
index 84a9da968d3afef328468f684d84ef09b6cc0f81..345e053cd42488856a0b75f5e18db963d1189733 100644 (file)
@@ -1463,6 +1463,43 @@ class SocketSrvTest(unittest.TestCase):
         self.assertEqual({}, self.__boss._unix_sockets)
         self.assertTrue(sock.closed)
 
+class TestFunctions(unittest.TestCase):
+    def test_remove_lock_files(self):
+        if not os.path.isdir(os.environ["LOCKFILE_TESTPATH"]):
+            os.mkdir(os.environ["LOCKFILE_TESTPATH"])
+
+        if "B10_FROM_BUILD" in os.environ:
+            oldenv = os.environ["B10_FROM_BUILD"]
+        else:
+            oldenv = None
+
+        os.environ["B10_FROM_BUILD"] = os.environ["LOCKFILE_TESTPATH"]
+
+        # create lockfiles for the testcase
+        lockfiles = ["logger_lockfile"]
+        for f in lockfiles:
+            fname = os.environ["B10_FROM_BUILD"] + '/' + f
+            if not os.path.isfile(fname):
+                open(fname, "w").close()
+
+        # first call should clear up all the lockfiles
+        bind10_src.remove_lock_files()
+
+        # check if the lockfiles exist
+        for f in lockfiles:
+            fname = os.environ["B10_FROM_BUILD"] + '/' + f
+            self.assertFalse(os.path.isfile(fname))
+
+        # second call should not assert anyway
+        bind10_src.remove_lock_files()
+
+        os.rmdir(os.environ["LOCKFILE_TESTPATH"])
+
+        if oldenv is not None:
+            os.environ["B10_FROM_BUILD"] = oldenv
+        else:
+            os.environ.pop("B10_FROM_BUILD")
+
 if __name__ == '__main__':
     # store os.environ for test_unchanged_environment
     original_os_environ = copy.deepcopy(os.environ)