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

Side by Side Diff: client/tests/trace_inputs_smoke_test.py

Issue 1390773002: Add an assert to ensure UTF-8 locale when handling file paths. (Closed) Base URL: git@github.com:luci/luci-py.git@master
Patch Set: More fixes Created 5 years, 2 months 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
« no previous file with comments | « client/tests/swarming_test.py ('k') | client/tests/zip_package_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # coding=utf-8 2 # coding=utf-8
3 # Copyright 2012 The Swarming Authors. All rights reserved. 3 # Copyright 2012 The Swarming Authors. All rights reserved.
4 # Use of this source code is governed under the Apache License, Version 2.0 that 4 # Use of this source code is governed under the Apache License, Version 2.0 that
5 # can be found in the LICENSE file. 5 # can be found in the LICENSE file.
6 6
7 import functools 7 import functools
8 import json 8 import json
9 import logging 9 import logging
10 import os 10 import os
11 import shutil 11 import shutil
12 import subprocess 12 import subprocess
13 import sys 13 import sys
14 import tempfile 14 import tempfile
15 import unicodedata 15 import unicodedata
16 import unittest 16 import unittest
17 17
18 ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 18 ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
19 sys.path.insert(0, ROOT_DIR) 19 sys.path.insert(0, ROOT_DIR)
20 20
21 import trace_inputs 21 import trace_inputs
22 from third_party.depot_tools import fix_encoding
22 from utils import file_path 23 from utils import file_path
23 from utils import threading_utils 24 from utils import threading_utils
24 25
25 26
26 FILENAME = os.path.basename(__file__) 27 FILENAME = os.path.basename(__file__)
27 REL_DATA = os.path.join(u'tests', 'trace_inputs') 28 REL_DATA = os.path.join(u'tests', 'trace_inputs')
28 VERBOSE = False 29 VERBOSE = False
29 30
30 # TODO(maruel): Have the kernel tracer on Windows differentiate between file 31 # TODO(maruel): Have the kernel tracer on Windows differentiate between file
31 # read or file write. 32 # read or file write.
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 # self.naked_executable will only be naked on Windows. 95 # self.naked_executable will only be naked on Windows.
95 self.naked_executable = unicode(sys.executable) 96 self.naked_executable = unicode(sys.executable)
96 if sys.platform == 'win32': 97 if sys.platform == 'win32':
97 self.naked_executable = os.path.basename(sys.executable) 98 self.naked_executable = os.path.basename(sys.executable)
98 99
99 def tearDown(self): 100 def tearDown(self):
100 if self.tempdir: 101 if self.tempdir:
101 if VERBOSE: 102 if VERBOSE:
102 print 'Leaking: %s' % self.tempdir 103 print 'Leaking: %s' % self.tempdir
103 else: 104 else:
104 shutil.rmtree(self.tempdir) 105 file_path.rmtree(self.tempdir)
105 106
106 @staticmethod 107 @staticmethod
107 def get_child_command(from_data): 108 def get_child_command(from_data):
108 """Returns command to run the child1.py.""" 109 """Returns command to run the child1.py."""
109 cmd = [sys.executable] 110 cmd = [sys.executable]
110 if from_data: 111 if from_data:
111 # When the gyp argument is specified, the command is started from --cwd 112 # When the gyp argument is specified, the command is started from --cwd
112 # directory. In this case, 'tests'. 113 # directory. In this case, 'tests'.
113 cmd.extend([os.path.join('trace_inputs', 'child1.py'), '--child-gyp']) 114 cmd.extend([os.path.join('trace_inputs', 'child1.py'), '--child-gyp'])
114 else: 115 else:
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 self.assertTrue(actual['root'].pop('pid')) 716 self.assertTrue(actual['root'].pop('pid'))
716 self.assertEqual(expected, actual) 717 self.assertEqual(expected, actual)
717 trace_inputs.get_api().clean_trace(self.log) 718 trace_inputs.get_api().clean_trace(self.log)
718 files = sorted( 719 files = sorted(
719 unicodedata.normalize('NFC', i) 720 unicodedata.normalize('NFC', i)
720 for i in os.listdir(unicode(self.tempdir))) 721 for i in os.listdir(unicode(self.tempdir)))
721 self.assertEqual([filename, 'tricky_filename.py'], files) 722 self.assertEqual([filename, 'tricky_filename.py'], files)
722 723
723 724
724 if __name__ == '__main__': 725 if __name__ == '__main__':
726 fix_encoding.fix_encoding()
725 VERBOSE = '-v' in sys.argv 727 VERBOSE = '-v' in sys.argv
726 logging.basicConfig(level=logging.DEBUG if VERBOSE else logging.ERROR) 728 logging.basicConfig(level=logging.DEBUG if VERBOSE else logging.ERROR)
727 if VERBOSE: 729 if VERBOSE:
728 unittest.TestCase.maxDiff = None 730 unittest.TestCase.maxDiff = None
729 # Necessary for the dtrace logger to work around execve() hook. See 731 # Necessary for the dtrace logger to work around execve() hook. See
730 # trace_inputs.py for more details. 732 # trace_inputs.py for more details.
731 os.environ['TRACE_INPUTS_DTRACE_ENABLE_EXECVE'] = '1' 733 os.environ['TRACE_INPUTS_DTRACE_ENABLE_EXECVE'] = '1'
732 print >> sys.stderr, 'Test are currently disabled' 734 print >> sys.stderr, 'Test are currently disabled'
733 sys.exit(0) 735 sys.exit(0)
734 #unittest.main() 736 #unittest.main()
OLDNEW
« no previous file with comments | « client/tests/swarming_test.py ('k') | client/tests/zip_package_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698