Skip to content

Commit 85324ab

Browse files
author
Somsikov, Andrey
committed
Add test for log file trimming
Also change root for test_log_file_names tests to be a temporary directory to allow runnig tests without sudo. The old root `/` or `C:` is not usually writable for regular users.
1 parent ce97ee7 commit 85324ab

File tree

1 file changed

+36
-30
lines changed

1 file changed

+36
-30
lines changed

gtest_parallel_tests.py

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -311,36 +311,42 @@ def test_times_worker():
311311

312312
class TestTask(unittest.TestCase):
313313
def test_log_file_names(self):
314-
def root():
315-
return 'C:\\' if sys.platform == 'win32' else '/'
316-
317-
self.assertEqual(
318-
os.path.join('.', 'bin-Test_case-100.log'),
319-
gtest_parallel.Task._logname('.', 'bin', 'Test.case', 100))
320-
321-
self.assertEqual(
322-
os.path.join('..', 'a', 'b', 'bin-Test_case_2-1.log'),
323-
gtest_parallel.Task._logname(os.path.join('..', 'a', 'b'),
324-
os.path.join('..', 'bin'),
325-
'Test.case/2', 1))
326-
327-
self.assertEqual(
328-
os.path.join('..', 'a', 'b', 'bin-Test_case_2-5.log'),
329-
gtest_parallel.Task._logname(os.path.join('..', 'a', 'b'),
330-
os.path.join(root(), 'c', 'd', 'bin'),
331-
'Test.case/2', 5))
332-
333-
self.assertEqual(
334-
os.path.join(root(), 'a', 'b', 'bin-Instantiation_Test_case_2-3.log'),
335-
gtest_parallel.Task._logname(os.path.join(root(), 'a', 'b'),
336-
os.path.join('..', 'c', 'bin'),
337-
'Instantiation/Test.case/2', 3))
338-
339-
self.assertEqual(
340-
os.path.join(root(), 'a', 'b', 'bin-Test_case-1.log'),
341-
gtest_parallel.Task._logname(os.path.join(root(), 'a', 'b'),
342-
os.path.join(root(), 'c', 'd', 'bin'),
343-
'Test.case', 1))
314+
with tempfile.TemporaryDirectory() as root:
315+
self.assertEqual(
316+
os.path.join('.', 'bin-Test_case-100.log'),
317+
gtest_parallel.Task._logname('.', 'bin', 'Test.case', 100))
318+
319+
self.assertEqual(
320+
os.path.join('..', 'a', 'b', 'bin-Test_case_2-1.log'),
321+
gtest_parallel.Task._logname(os.path.join('..', 'a', 'b'),
322+
os.path.join('..', 'bin'),
323+
'Test.case/2', 1))
324+
325+
self.assertEqual(
326+
os.path.join('..', 'a', 'b', 'bin-Test_case_2-5.log'),
327+
gtest_parallel.Task._logname(os.path.join('..', 'a', 'b'),
328+
os.path.join(root, 'c', 'd', 'bin'),
329+
'Test.case/2', 5))
330+
331+
self.assertEqual(
332+
os.path.join(root, 'a', 'b', 'bin-Instantiation_Test_case_2-3.log'),
333+
gtest_parallel.Task._logname(os.path.join(root, 'a', 'b'),
334+
os.path.join('..', 'c', 'bin'),
335+
'Instantiation/Test.case/2', 3))
336+
337+
self.assertEqual(
338+
os.path.join(root, 'a', 'b', 'bin-Test_case-1.log'),
339+
gtest_parallel.Task._logname(os.path.join(root, 'a', 'b'),
340+
os.path.join(root, 'c', 'd', 'bin'),
341+
'Test.case', 1))
342+
MAX_PREFIX_LENGTH=240
343+
long_test_name = 'a' * (os.statvfs('.').f_namemax if hasattr(os, 'statvfs') else MAX_PREFIX_LENGTH + 1)
344+
truncated_log = gtest_parallel.Task._logname(os.path.join(root, 'out'),
345+
os.path.join(root, 'bin'),
346+
long_test_name, 1)
347+
self.assertNotEqual('bin-' + long_test_name + '-1.log', os.path.basename(truncated_log))
348+
self.assertTrue(truncated_log.endswith('-1.log'))
349+
self.assertTrue(truncated_log.startswith(os.path.join(root, 'out', 'bin-' + long_test_name[:MAX_PREFIX_LENGTH-len('bin--1.log')])))
344350

345351
def test_logs_to_temporary_files_without_output_dir(self):
346352
log_file = gtest_parallel.Task._logname(None, None, None, None)

0 commit comments

Comments
 (0)