@@ -311,36 +311,42 @@ def test_times_worker():
311311
312312class 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