Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: third_party/WebKit/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py

Issue 2578213005: Use underscores to separate words in filenames in webkitpy. (Closed)
Patch Set: Fix check for attribute in output_capture.py. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright (C) 2011 Google Inc. All rights reserved.
2 #
3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are
5 # met:
6 #
7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following disclaimer
11 # in the documentation and/or other materials provided with the
12 # distribution.
13 # * Neither the name of Google Inc. nor the names of its
14 # contributors may be used to endorse or promote products derived from
15 # this software without specific prior written permission.
16 #
17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 import platform
30 import sys
31 import unittest
32
33 from webkitpy.common.system.executive import Executive
34 from webkitpy.common.system.executive_mock import MockExecutive2
35 from webkitpy.common.system.filesystem import FileSystem
36 from webkitpy.common.system.filesystem_mock import MockFileSystem
37 from webkitpy.common.system.platforminfo import PlatformInfo
38
39
40 def fake_sys(platform_str='darwin', windows_version_tuple=None):
41
42 class FakeSysModule(object):
43 platform = platform_str
44 if windows_version_tuple:
45 getwindowsversion = lambda x: windows_version_tuple
46
47 return FakeSysModule()
48
49
50 def fake_platform(mac_version_string='10.6.3', release_string='bar', linux_versi on='trusty'):
51
52 class FakePlatformModule(object):
53
54 def mac_ver(self):
55 return tuple([mac_version_string, tuple(['', '', '']), 'i386'])
56
57 def linux_distribution(self):
58 return tuple([None, None, linux_version])
59
60 def platform(self):
61 return 'foo'
62
63 def release(self):
64 return release_string
65
66 return FakePlatformModule()
67
68
69 def fake_executive(output=None):
70 if output:
71 return MockExecutive2(output=output)
72 return MockExecutive2(exception=SystemError)
73
74
75 class TestPlatformInfo(unittest.TestCase):
76
77 def make_info(self, sys_module=None, platform_module=None, filesystem_module =None, executive=None):
78 return PlatformInfo(sys_module or fake_sys(), platform_module or fake_pl atform(),
79 filesystem_module or MockFileSystem(), executive or fake_executive())
80
81 def test_real_code(self):
82 # This test makes sure the real (unmocked) code actually works.
83 info = PlatformInfo(sys, platform, FileSystem(), Executive())
84 self.assertNotEquals(info.os_name, '')
85 self.assertNotEquals(info.os_version, '')
86 self.assertNotEquals(info.display_name(), '')
87 self.assertTrue(info.is_mac() or info.is_win() or info.is_linux() or inf o.is_freebsd())
88 self.assertIsNotNone(info.terminal_width())
89
90 if info.is_linux():
91 self.assertIsNotNone(info.linux_distribution())
92
93 if info.is_mac():
94 self.assertTrue(info.total_bytes_memory() > 0)
95 else:
96 self.assertIsNone(info.total_bytes_memory())
97
98 def test_os_name_and_wrappers(self):
99 info = self.make_info(fake_sys('linux2'))
100 self.assertTrue(info.is_linux())
101 self.assertFalse(info.is_mac())
102 self.assertFalse(info.is_win())
103 self.assertFalse(info.is_freebsd())
104
105 info = self.make_info(fake_sys('linux3'))
106 self.assertTrue(info.is_linux())
107 self.assertFalse(info.is_mac())
108 self.assertFalse(info.is_win())
109 self.assertFalse(info.is_freebsd())
110
111 info = self.make_info(fake_sys('darwin'), fake_platform('10.6.3'))
112 self.assertEqual(info.os_name, 'mac')
113 self.assertFalse(info.is_linux())
114 self.assertTrue(info.is_mac())
115 self.assertFalse(info.is_win())
116 self.assertFalse(info.is_freebsd())
117
118 info = self.make_info(fake_sys('win32', tuple([6, 1, 7600])))
119 self.assertEqual(info.os_name, 'win')
120 self.assertFalse(info.is_linux())
121 self.assertFalse(info.is_mac())
122 self.assertTrue(info.is_win())
123 self.assertFalse(info.is_freebsd())
124
125 info = self.make_info(fake_sys('cygwin'), executive=fake_executive('6.1. 7600'))
126 self.assertEqual(info.os_name, 'win')
127 self.assertFalse(info.is_linux())
128 self.assertFalse(info.is_mac())
129 self.assertTrue(info.is_win())
130 self.assertFalse(info.is_freebsd())
131
132 info = self.make_info(fake_sys('freebsd8'))
133 self.assertEqual(info.os_name, 'freebsd')
134 self.assertFalse(info.is_linux())
135 self.assertFalse(info.is_mac())
136 self.assertFalse(info.is_win())
137 self.assertTrue(info.is_freebsd())
138
139 self.assertRaises(AssertionError, self.make_info, fake_sys('vms'))
140
141 def test_os_version(self):
142 self.assertRaises(AssertionError, self.make_info, fake_sys('darwin'), fa ke_platform('10.4.3'))
143 self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.9. 0')).os_version, 'mac10.9')
144 self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.10 .0')).os_version, 'mac10.10')
145 self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.11 .0')).os_version, 'mac10.11')
146 self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.12 .0')).os_version, 'future')
147
148 self.assertEqual(self.make_info(fake_sys('linux2')).os_version, 'trusty' )
149 info = self.make_info(fake_sys('linux2'), fake_platform(linux_version='u topic'))
150 self.assertEqual(info.os_version, 'trusty')
151
152 self.assertEqual(self.make_info(fake_sys('freebsd8'), fake_platform('', '8.3-PRERELEASE')).os_version, '8.3-PRERELEASE')
153 self.assertEqual(self.make_info(fake_sys('freebsd9'), fake_platform('', '9.0-RELEASE')).os_version, '9.0-RELEASE')
154
155 self.assertRaises(AssertionError, self.make_info, fake_sys('win32', tupl e([5, 0, 1234])))
156 self.assertRaises(AssertionError, self.make_info, fake_sys('win32', tupl e([6, 1, 1234])))
157 self.assertEqual(self.make_info(fake_sys('win32', tuple([10, 1, 1234]))) .os_version, 'future')
158 self.assertEqual(self.make_info(fake_sys('win32', tuple([10, 0, 1234]))) .os_version, '10')
159 self.assertEqual(self.make_info(fake_sys('win32', tuple([6, 3, 1234]))). os_version, '8.1')
160 self.assertEqual(self.make_info(fake_sys('win32', tuple([6, 2, 1234]))). os_version, '8')
161 self.assertEqual(self.make_info(fake_sys('win32', tuple([6, 1, 7601]))). os_version, '7sp1')
162 self.assertEqual(self.make_info(fake_sys('win32', tuple([6, 1, 7600]))). os_version, '7sp0')
163 self.assertEqual(self.make_info(fake_sys('win32', tuple([6, 0, 1234]))). os_version, 'vista')
164 self.assertEqual(self.make_info(fake_sys('win32', tuple([5, 1, 1234]))). os_version, 'xp')
165
166 self.assertRaises(AssertionError, self.make_info, fake_sys('win32'),
167 executive=fake_executive('5.0.1234'))
168 self.assertRaises(AssertionError, self.make_info, fake_sys('win32'),
169 executive=fake_executive('6.1.1234'))
170 self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_execu tive('10.1.1234')).os_version, 'future')
171 self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_execu tive('10.0.1234')).os_version, '10')
172 self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_execu tive('6.3.1234')).os_version, '8.1')
173 self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_execu tive('6.2.1234')).os_version, '8')
174 self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_execu tive('6.1.7601')).os_version, '7sp1')
175 self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_execu tive('6.1.7600')).os_version, '7sp0')
176 self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_execu tive('6.0.1234')).os_version, 'vista')
177 self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_execu tive('5.1.1234')).os_version, 'xp')
178
179 def _assert_file_implies_linux_distribution(self, file, distribution):
180 info = self.make_info(sys_module=fake_sys('linux2'), filesystem_module=M ockFileSystem({file: ''}))
181 self.assertEqual(info.linux_distribution(), distribution)
182
183 def test_linux_distro_detection(self):
184 self._assert_file_implies_linux_distribution('/etc/arch-release', 'arch' )
185 self._assert_file_implies_linux_distribution('/etc/debian_version', 'deb ian')
186 self._assert_file_implies_linux_distribution('/etc/redhat-release', 'red hat')
187 self._assert_file_implies_linux_distribution('/etc/mock-release', 'unkno wn')
188
189 info = self.make_info(fake_sys('cygwin'), executive=fake_executive('6.1. 7600'))
190 self.assertIsNone(info.linux_distribution())
191
192 def test_display_name(self):
193 info = self.make_info(fake_sys('darwin'))
194 self.assertNotEquals(info.display_name(), '')
195
196 info = self.make_info(fake_sys('win32', tuple([6, 1, 7600])))
197 self.assertNotEquals(info.display_name(), '')
198
199 info = self.make_info(fake_sys('linux2'))
200 self.assertNotEquals(info.display_name(), '')
201
202 info = self.make_info(fake_sys('freebsd9'))
203 self.assertNotEquals(info.display_name(), '')
204
205 def test_total_bytes_memory(self):
206 info = self.make_info(fake_sys('darwin'), fake_platform('10.6.3'), execu tive=fake_executive('1234'))
207 self.assertEqual(info.total_bytes_memory(), 1234)
208
209 info = self.make_info(fake_sys('win32', tuple([6, 1, 7600])))
210 self.assertIsNone(info.total_bytes_memory())
211
212 info = self.make_info(fake_sys('linux2'))
213 self.assertIsNone(info.total_bytes_memory())
214
215 info = self.make_info(fake_sys('freebsd9'))
216 self.assertIsNone(info.total_bytes_memory())
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698