Index: Tools/Scripts/webkitpy/layout_tests/port/http_lock_unittest.py |
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/http_lock_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/http_lock_unittest.py |
deleted file mode 100644 |
index 25af12fab1ef35e6c806adc21bb8bece71be899c..0000000000000000000000000000000000000000 |
--- a/Tools/Scripts/webkitpy/layout_tests/port/http_lock_unittest.py |
+++ /dev/null |
@@ -1,120 +0,0 @@ |
-# Copyright (C) 2010 Gabor Rapcsanyi (rgabor@inf.u-szeged.hu), University of Szeged |
-# |
-# All rights reserved. |
-# |
-# Redistribution and use in source and binary forms, with or without |
-# modification, are permitted provided that the following conditions |
-# are met: |
-# 1. Redistributions of source code must retain the above copyright |
-# notice, this list of conditions and the following disclaimer. |
-# 2. Redistributions in binary form must reproduce the above copyright |
-# notice, this list of conditions and the following disclaimer in the |
-# documentation and/or other materials provided with the distribution. |
-# |
-# THIS SOFTWARE IS PROVIDED BY UNIVERSITY OF SZEGED ``AS IS'' AND ANY |
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UNIVERSITY OF SZEGED OR |
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
-# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- |
-from http_lock import HttpLock |
-import os # Used for os.getpid() |
-import unittest2 as unittest |
- |
-from webkitpy.common.system.filesystem_mock import MockFileSystem |
-from webkitpy.common.system.executive_mock import MockExecutive |
- |
- |
-# FIXME: These tests all touch the real disk, but could be written to a MockFileSystem instead. |
-class HttpLockTestWithRealFileSystem(unittest.TestCase): |
- # FIXME: Unit tests do not use an __init__ method, but rather setUp and tearDown methods. |
- def __init__(self, testFunc): |
- self.http_lock = HttpLock(None, "WebKitTestHttpd.lock.", "WebKitTest.lock") |
- self.filesystem = self.http_lock._filesystem # FIXME: We should be passing in a MockFileSystem instead. |
- self.lock_file_path_prefix = self.filesystem.join(self.http_lock._lock_path, self.http_lock._lock_file_prefix) |
- self.lock_file_name = self.lock_file_path_prefix + "0" |
- self.guard_lock_file = self.http_lock._guard_lock_file |
- self.clean_all_lockfile() |
- unittest.TestCase.__init__(self, testFunc) |
- |
- def clean_all_lockfile(self): |
- if self.filesystem.exists(self.guard_lock_file): |
- self.filesystem.remove(self.guard_lock_file) |
- lock_list = self.filesystem.glob(self.lock_file_path_prefix + '*') |
- for file_name in lock_list: |
- self.filesystem.remove(file_name) |
- |
- def assertEqual(self, first, second): |
- if first != second: |
- self.clean_all_lockfile() |
- unittest.TestCase.assertEqual(self, first, second) |
- |
- def _check_lock_file(self): |
- if self.filesystem.exists(self.lock_file_name): |
- pid = os.getpid() |
- lock_file_pid = self.filesystem.read_text_file(self.lock_file_name) |
- self.assertEqual(pid, int(lock_file_pid)) |
- return True |
- return False |
- |
- def test_lock_lifecycle(self): |
- self.http_lock._create_lock_file() |
- |
- self.assertEqual(True, self._check_lock_file()) |
- self.assertEqual(1, self.http_lock._next_lock_number()) |
- |
- self.http_lock.cleanup_http_lock() |
- |
- self.assertEqual(False, self._check_lock_file()) |
- self.assertEqual(0, self.http_lock._next_lock_number()) |
- |
- |
-class HttpLockTest(unittest.TestCase): |
- def setUp(self): |
- self.filesystem = MockFileSystem() |
- self.http_lock = HttpLock(None, "WebKitTestHttpd.lock.", "WebKitTest.lock", filesystem=self.filesystem, executive=MockExecutive()) |
- # FIXME: Shouldn't we be able to get these values from the http_lock object directly? |
- self.lock_file_path_prefix = self.filesystem.join(self.http_lock._lock_path, self.http_lock._lock_file_prefix) |
- self.lock_file_name = self.lock_file_path_prefix + "0" |
- |
- def test_current_lock_pid(self): |
- # FIXME: Once Executive wraps getpid, we can mock this and not use a real pid. |
- current_pid = os.getpid() |
- self.http_lock._filesystem.write_text_file(self.lock_file_name, str(current_pid)) |
- self.assertEqual(self.http_lock._current_lock_pid(), current_pid) |
- |
- def test_extract_lock_number(self): |
- lock_file_list = ( |
- self.lock_file_path_prefix + "00", |
- self.lock_file_path_prefix + "9", |
- self.lock_file_path_prefix + "001", |
- self.lock_file_path_prefix + "021", |
- ) |
- |
- expected_number_list = (0, 9, 1, 21) |
- |
- for lock_file, expected in zip(lock_file_list, expected_number_list): |
- self.assertEqual(self.http_lock._extract_lock_number(lock_file), expected) |
- |
- def test_lock_file_list(self): |
- self.http_lock._filesystem = MockFileSystem({ |
- self.lock_file_path_prefix + "6": "", |
- self.lock_file_path_prefix + "1": "", |
- self.lock_file_path_prefix + "4": "", |
- self.lock_file_path_prefix + "3": "", |
- }) |
- |
- expected_file_list = [ |
- self.lock_file_path_prefix + "1", |
- self.lock_file_path_prefix + "3", |
- self.lock_file_path_prefix + "4", |
- self.lock_file_path_prefix + "6", |
- ] |
- |
- self.assertEqual(self.http_lock._lock_file_list(), expected_file_list) |