Changes to improve multiprocessing PRESUBMIT support in Windows
  * make RunTest's multiprocessing.Pool in the constructor of InputApi
    to avoid getting tripped up by chdir manipulation.
  * Don't do the split cyclic-import check when the invoker of the
    Pylint presubmit checks explicitly sends cyclic import check
    parameters via extra_args
  * fix pseudobug where ownership of the files variable was unclear,
    and pass all arguments on stdin (instead of mix of CLI + stdin).
  * fix bug in pylint which caused it to manipulate sys.path before
    spawning its subprocesses, which caused multiprocessing to fail
    on windows.
    * Note: This may carry a slight semantic change. Before, pylint would
      add all .py files' directories to sys.path while checking any of
      them. Now in parallel mode, pylint will only add the path of the
      single file to sys.path. This behavior actually mirrors Python's
      own behavior, so the check should be more-correct than before (and
      should cut down on pylint import scanning time with very large
      sys.path's).
    * If someone encounters an issue with this, please note that the
      GetPylint check also includes an extra_paths_list which is
      expressly for this purpose.

R=dpranke@chromium.org, kbr@chromium.org, maruel@chromium.org
BUG=501012

Review URL: https://codereview.chromium.org/1208743002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@295908 0039d316-1c4b-4281-b951-d872f2087c98
5 files changed
tree: b83d0c6210db72c462dc6ed5ba40d7c684cb5a58
  1. .gitignore
  2. .style.yapf
  3. LICENSE
  4. OWNERS
  5. PRESUBMIT.py
  6. README
  7. README.codereview
  8. README.gclient
  9. README.git-cl
  10. README.testing
  11. WATCHLISTS
  12. annotated_gclient.py
  13. apply_issue
  14. apply_issue.bat
  15. apply_issue.py
  16. auth.py
  17. bootstrap/
  18. breakpad.py
  19. buildbucket.py
  20. checkout.py
  21. chrome-update-create-task.bat
  22. chrome-update.bat
  23. chrome-update.py
  24. clang-format
  25. clang-format.bat
  26. clang_format.py
  27. codereview.settings
  28. commit_queue
  29. commit_queue.bat
  30. commit_queue.py
  31. cpplint.bat
  32. cpplint.py
  33. cpplint_chromium.py
  34. create-chromium-git-src
  35. create-ntfs-junction.c
  36. create-ntfs-junction.exe
  37. dart_format.py
  38. depot-tools-auth
  39. depot-tools-auth.bat
  40. depot-tools-auth.py
  41. download_from_google_storage
  42. download_from_google_storage.bat
  43. download_from_google_storage.py
  44. drover
  45. drover.bat
  46. drover.py
  47. fetch
  48. fetch.bat
  49. fetch.py
  50. fix_encoding.py
  51. gcl
  52. gcl.bat
  53. gcl.py
  54. gclient
  55. gclient-new-workdir.py
  56. gclient.bat
  57. gclient.py
  58. gclient_completion.sh
  59. gclient_scm.py
  60. gclient_utils.py
  61. gerrit_util.py
  62. git-auto-svn
  63. git-cache
  64. git-cherry-pick-upload
  65. git-cl
  66. git-cl-upload-hook
  67. git-crrev-parse
  68. git-crsync
  69. git-crup
  70. git-footers
  71. git-freeze
  72. git-gs
  73. git-lkgr
  74. git-map
  75. git-map-branches
  76. git-mark-merge-base
  77. git-nav-downstream
  78. git-nav-upstream
  79. git-new-branch
  80. git-number
  81. git-rebase-update
  82. git-rename-branch
  83. git-reparent-branch
  84. git-retry
  85. git-runhooks
  86. git-squash-branch
  87. git-templates/
  88. git-thaw
  89. git-try
  90. git-upstream-diff
  91. git_auto_svn.py
  92. git_cache.py
  93. git_cherry_pick_upload.py
  94. git_cl.py
  95. git_common.py
  96. git_footers.py
  97. git_freezer.py
  98. git_map.py
  99. git_map_branches.py
  100. git_mark_merge_base.py
  101. git_nav_downstream.py
  102. git_new_branch.py
  103. git_number.py
  104. git_rebase_update.py
  105. git_rename_branch.py
  106. git_reparent_branch.py
  107. git_retry.py
  108. git_squash_branch.py
  109. git_try.py
  110. git_upstream_diff.py
  111. git_utils/
  112. gn
  113. gn.bat
  114. gn.py
  115. gsutil.py
  116. hammer
  117. hammer.bat
  118. infra/
  119. man/
  120. my_activity.py
  121. my_reviews.py
  122. ninja
  123. ninja-linux32
  124. ninja-linux64
  125. ninja-mac
  126. ninja.exe
  127. owners.py
  128. owners_finder.py
  129. patch.py
  130. presubmit_canned_checks.py
  131. presubmit_support.py
  132. profile.xml
  133. pylint
  134. pylint.py
  135. pylintrc
  136. python_git_runner.sh
  137. recipes/
  138. repo
  139. rietveld.py
  140. roll-dep
  141. roll-dep-svn
  142. roll-dep-svn.bat
  143. roll-dep.bat
  144. roll_dep.py
  145. roll_dep_svn.py
  146. scm.py
  147. subcommand.py
  148. subprocess2.py
  149. support/
  150. testing_support/
  151. tests/
  152. third_party/
  153. trychange.py
  154. update_depot_tools
  155. update_depot_tools.bat
  156. upload_to_google_storage.py
  157. watchlists.py
  158. weekly
  159. win_toolchain/
  160. wtf
  161. zsh-goodies/