libv8 8.4.255.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +3 -0
  5. data/.travis.yml +45 -0
  6. data/CHANGELOG.md +111 -0
  7. data/Gemfile +4 -0
  8. data/README.md +152 -0
  9. data/Rakefile +125 -0
  10. data/appveyor.yml.disabled +36 -0
  11. data/ext/libv8/arch.rb +20 -0
  12. data/ext/libv8/builder.rb +106 -0
  13. data/ext/libv8/extconf.rb +7 -0
  14. data/ext/libv8/location.rb +89 -0
  15. data/ext/libv8/paths.rb +28 -0
  16. data/lib/libv8.rb +9 -0
  17. data/lib/libv8/version.rb +3 -0
  18. data/libv8.gemspec +30 -0
  19. data/scaleway.png +0 -0
  20. data/spec/location_spec.rb +69 -0
  21. data/spec/spec_helper.rb +4 -0
  22. data/thefrontside.png +0 -0
  23. data/vendor/depot_tools/.cipd_impl.ps1 +129 -0
  24. data/vendor/depot_tools/.gitattributes +55 -0
  25. data/vendor/depot_tools/.gitignore +92 -0
  26. data/vendor/depot_tools/.style.yapf +4 -0
  27. data/vendor/depot_tools/.vpython +55 -0
  28. data/vendor/depot_tools/.vpython3 +23 -0
  29. data/vendor/depot_tools/CROS_OWNERS +7 -0
  30. data/vendor/depot_tools/GOMA_OWNERS +9 -0
  31. data/vendor/depot_tools/LICENSE +27 -0
  32. data/vendor/depot_tools/LUCI_OWNERS +5 -0
  33. data/vendor/depot_tools/OWNERS +39 -0
  34. data/vendor/depot_tools/PRESUBMIT.py +150 -0
  35. data/vendor/depot_tools/README.gclient.md +67 -0
  36. data/vendor/depot_tools/README.git-cl.md +99 -0
  37. data/vendor/depot_tools/README.md +78 -0
  38. data/vendor/depot_tools/WATCHLISTS +26 -0
  39. data/vendor/depot_tools/auth.py +163 -0
  40. data/vendor/depot_tools/autoninja +36 -0
  41. data/vendor/depot_tools/autoninja.bat +33 -0
  42. data/vendor/depot_tools/autoninja.py +148 -0
  43. data/vendor/depot_tools/bb +12 -0
  44. data/vendor/depot_tools/bb.bat +7 -0
  45. data/vendor/depot_tools/bootstrap/README.md +155 -0
  46. data/vendor/depot_tools/bootstrap/bootstrap.py +356 -0
  47. data/vendor/depot_tools/bootstrap/git-bash.template.sh +12 -0
  48. data/vendor/depot_tools/bootstrap/git.template.bat +5 -0
  49. data/vendor/depot_tools/bootstrap/manifest.txt +27 -0
  50. data/vendor/depot_tools/bootstrap/manifest_bleeding_edge.txt +27 -0
  51. data/vendor/depot_tools/bootstrap/profile.d.python.sh +20 -0
  52. data/vendor/depot_tools/bootstrap/python27.bat +46 -0
  53. data/vendor/depot_tools/bootstrap/python3.bat +46 -0
  54. data/vendor/depot_tools/bootstrap/win_tools.bat +79 -0
  55. data/vendor/depot_tools/bootstrap_python3 +35 -0
  56. data/vendor/depot_tools/breakpad.py +12 -0
  57. data/vendor/depot_tools/cbuildbot +1 -0
  58. data/vendor/depot_tools/chrome_set_ver +1 -0
  59. data/vendor/depot_tools/cipd +247 -0
  60. data/vendor/depot_tools/cipd.bat +67 -0
  61. data/vendor/depot_tools/cipd_bin_setup.bat +6 -0
  62. data/vendor/depot_tools/cipd_bin_setup.sh +22 -0
  63. data/vendor/depot_tools/cipd_client_version +1 -0
  64. data/vendor/depot_tools/cipd_client_version.digests +22 -0
  65. data/vendor/depot_tools/cipd_manifest.txt +63 -0
  66. data/vendor/depot_tools/cipd_manifest.versions +438 -0
  67. data/vendor/depot_tools/cit +8 -0
  68. data/vendor/depot_tools/cit.bat +12 -0
  69. data/vendor/depot_tools/cit.py +167 -0
  70. data/vendor/depot_tools/clang-format +8 -0
  71. data/vendor/depot_tools/clang-format.bat +12 -0
  72. data/vendor/depot_tools/clang_format.py +79 -0
  73. data/vendor/depot_tools/clang_format_merge_driver +8 -0
  74. data/vendor/depot_tools/clang_format_merge_driver.bat +12 -0
  75. data/vendor/depot_tools/clang_format_merge_driver.py +69 -0
  76. data/vendor/depot_tools/codereview.settings +6 -0
  77. data/vendor/depot_tools/compile_single_file +8 -0
  78. data/vendor/depot_tools/compile_single_file.bat +11 -0
  79. data/vendor/depot_tools/compile_single_file.py +79 -0
  80. data/vendor/depot_tools/cpplint.bat +11 -0
  81. data/vendor/depot_tools/cpplint.py +6097 -0
  82. data/vendor/depot_tools/cpplint_chromium.py +50 -0
  83. data/vendor/depot_tools/cros +87 -0
  84. data/vendor/depot_tools/cros_sdk +1 -0
  85. data/vendor/depot_tools/crosjobs +13 -0
  86. data/vendor/depot_tools/detect_host_arch.py +55 -0
  87. data/vendor/depot_tools/dirmd +12 -0
  88. data/vendor/depot_tools/dirmd.bat +7 -0
  89. data/vendor/depot_tools/download_from_google_storage +8 -0
  90. data/vendor/depot_tools/download_from_google_storage.bat +12 -0
  91. data/vendor/depot_tools/download_from_google_storage.py +634 -0
  92. data/vendor/depot_tools/ensure_bootstrap +53 -0
  93. data/vendor/depot_tools/fetch +21 -0
  94. data/vendor/depot_tools/fetch.bat +28 -0
  95. data/vendor/depot_tools/fetch.py +319 -0
  96. data/vendor/depot_tools/fetch_configs/android.py +34 -0
  97. data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
  98. data/vendor/depot_tools/fetch_configs/breakpad.py +44 -0
  99. data/vendor/depot_tools/fetch_configs/chromium.py +66 -0
  100. data/vendor/depot_tools/fetch_configs/config_util.py +52 -0
  101. data/vendor/depot_tools/fetch_configs/crashpad.py +41 -0
  102. data/vendor/depot_tools/fetch_configs/dart.py +45 -0
  103. data/vendor/depot_tools/fetch_configs/depot_tools.py +44 -0
  104. data/vendor/depot_tools/fetch_configs/devtools-frontend.py +44 -0
  105. data/vendor/depot_tools/fetch_configs/goma_client.py +41 -0
  106. data/vendor/depot_tools/fetch_configs/gyp.py +41 -0
  107. data/vendor/depot_tools/fetch_configs/infra.py +40 -0
  108. data/vendor/depot_tools/fetch_configs/infra_internal.py +45 -0
  109. data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
  110. data/vendor/depot_tools/fetch_configs/ios.py +34 -0
  111. data/vendor/depot_tools/fetch_configs/ios_internal.py +39 -0
  112. data/vendor/depot_tools/fetch_configs/nacl.py +48 -0
  113. data/vendor/depot_tools/fetch_configs/naclports.py +47 -0
  114. data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
  115. data/vendor/depot_tools/fetch_configs/pdfium.py +40 -0
  116. data/vendor/depot_tools/fetch_configs/skia.py +41 -0
  117. data/vendor/depot_tools/fetch_configs/skia_buildbot.py +41 -0
  118. data/vendor/depot_tools/fetch_configs/syzygy.py +41 -0
  119. data/vendor/depot_tools/fetch_configs/v8.py +44 -0
  120. data/vendor/depot_tools/fetch_configs/webrtc.py +52 -0
  121. data/vendor/depot_tools/fetch_configs/webrtc_android.py +34 -0
  122. data/vendor/depot_tools/fetch_configs/webrtc_ios.py +34 -0
  123. data/vendor/depot_tools/fix_encoding.py +385 -0
  124. data/vendor/depot_tools/gclient +38 -0
  125. data/vendor/depot_tools/gclient-new-workdir.py +124 -0
  126. data/vendor/depot_tools/gclient.bat +32 -0
  127. data/vendor/depot_tools/gclient.py +3198 -0
  128. data/vendor/depot_tools/gclient_completion.sh +76 -0
  129. data/vendor/depot_tools/gclient_eval.py +891 -0
  130. data/vendor/depot_tools/gclient_paths.py +152 -0
  131. data/vendor/depot_tools/gclient_scm.py +1615 -0
  132. data/vendor/depot_tools/gclient_utils.py +1280 -0
  133. data/vendor/depot_tools/gerrit_client.py +151 -0
  134. data/vendor/depot_tools/gerrit_util.py +996 -0
  135. data/vendor/depot_tools/git-cache +6 -0
  136. data/vendor/depot_tools/git-cl +6 -0
  137. data/vendor/depot_tools/git-crrev-parse +53 -0
  138. data/vendor/depot_tools/git-drover +6 -0
  139. data/vendor/depot_tools/git-find-releases +6 -0
  140. data/vendor/depot_tools/git-footers +6 -0
  141. data/vendor/depot_tools/git-freeze +8 -0
  142. data/vendor/depot_tools/git-gs +9 -0
  143. data/vendor/depot_tools/git-hyper-blame +6 -0
  144. data/vendor/depot_tools/git-map +6 -0
  145. data/vendor/depot_tools/git-map-branches +6 -0
  146. data/vendor/depot_tools/git-mark-merge-base +6 -0
  147. data/vendor/depot_tools/git-nav-downstream +6 -0
  148. data/vendor/depot_tools/git-nav-upstream +6 -0
  149. data/vendor/depot_tools/git-new-branch +6 -0
  150. data/vendor/depot_tools/git-number +6 -0
  151. data/vendor/depot_tools/git-rebase-update +6 -0
  152. data/vendor/depot_tools/git-rename-branch +6 -0
  153. data/vendor/depot_tools/git-reparent-branch +6 -0
  154. data/vendor/depot_tools/git-retry +8 -0
  155. data/vendor/depot_tools/git-runhooks +23 -0
  156. data/vendor/depot_tools/git-squash-branch +6 -0
  157. data/vendor/depot_tools/git-templates/description +3 -0
  158. data/vendor/depot_tools/git-templates/hooks/applypatch-msg +4 -0
  159. data/vendor/depot_tools/git-templates/hooks/post-applypatch +4 -0
  160. data/vendor/depot_tools/git-templates/hooks/post-checkout +4 -0
  161. data/vendor/depot_tools/git-templates/hooks/post-commit +4 -0
  162. data/vendor/depot_tools/git-templates/hooks/post-merge +4 -0
  163. data/vendor/depot_tools/git-templates/hooks/post-update +4 -0
  164. data/vendor/depot_tools/git-templates/hooks/pre-applypatch +4 -0
  165. data/vendor/depot_tools/git-templates/hooks/pre-auto-gc +4 -0
  166. data/vendor/depot_tools/git-templates/hooks/pre-commit +4 -0
  167. data/vendor/depot_tools/git-templates/hooks/pre-rebase +4 -0
  168. data/vendor/depot_tools/git-templates/hooks/prepare-commit-msg +4 -0
  169. data/vendor/depot_tools/git-templates/info/exclude +6 -0
  170. data/vendor/depot_tools/git-thaw +13 -0
  171. data/vendor/depot_tools/git-upstream-diff +9 -0
  172. data/vendor/depot_tools/git_cache.py +786 -0
  173. data/vendor/depot_tools/git_cl.py +5158 -0
  174. data/vendor/depot_tools/git_cl_completion.sh +48 -0
  175. data/vendor/depot_tools/git_common.py +1101 -0
  176. data/vendor/depot_tools/git_dates.py +62 -0
  177. data/vendor/depot_tools/git_drover.py +469 -0
  178. data/vendor/depot_tools/git_find_releases.py +67 -0
  179. data/vendor/depot_tools/git_footers.py +261 -0
  180. data/vendor/depot_tools/git_freezer.py +40 -0
  181. data/vendor/depot_tools/git_hyper_blame.py +391 -0
  182. data/vendor/depot_tools/git_map.py +166 -0
  183. data/vendor/depot_tools/git_map_branches.py +354 -0
  184. data/vendor/depot_tools/git_mark_merge_base.py +73 -0
  185. data/vendor/depot_tools/git_nav_downstream.py +69 -0
  186. data/vendor/depot_tools/git_new_branch.py +82 -0
  187. data/vendor/depot_tools/git_number.py +301 -0
  188. data/vendor/depot_tools/git_rebase_update.py +351 -0
  189. data/vendor/depot_tools/git_rename_branch.py +55 -0
  190. data/vendor/depot_tools/git_reparent_branch.py +101 -0
  191. data/vendor/depot_tools/git_retry.py +181 -0
  192. data/vendor/depot_tools/git_squash_branch.py +28 -0
  193. data/vendor/depot_tools/git_upstream_diff.py +64 -0
  194. data/vendor/depot_tools/gn +8 -0
  195. data/vendor/depot_tools/gn.bat +12 -0
  196. data/vendor/depot_tools/gn.py +78 -0
  197. data/vendor/depot_tools/goma_auth +12 -0
  198. data/vendor/depot_tools/goma_auth.bat +8 -0
  199. data/vendor/depot_tools/goma_ctl +12 -0
  200. data/vendor/depot_tools/goma_ctl.bat +8 -0
  201. data/vendor/depot_tools/gsutil.py +190 -0
  202. data/vendor/depot_tools/gsutil.py.bat +23 -0
  203. data/vendor/depot_tools/gsutil.vpython +120 -0
  204. data/vendor/depot_tools/infra/README.md +1 -0
  205. data/vendor/depot_tools/infra/config/OWNERS +7 -0
  206. data/vendor/depot_tools/infra/config/README.md +1 -0
  207. data/vendor/depot_tools/infra/config/recipes.cfg +26 -0
  208. data/vendor/depot_tools/led +12 -0
  209. data/vendor/depot_tools/led.bat +7 -0
  210. data/vendor/depot_tools/lockfile.py +116 -0
  211. data/vendor/depot_tools/luci-auth +13 -0
  212. data/vendor/depot_tools/luci-auth.bat +8 -0
  213. data/vendor/depot_tools/lucicfg +12 -0
  214. data/vendor/depot_tools/lucicfg.bat +7 -0
  215. data/vendor/depot_tools/mac_toolchain +12 -0
  216. data/vendor/depot_tools/man/html/depot_tools.html +934 -0
  217. data/vendor/depot_tools/man/html/depot_tools_tutorial.html +1593 -0
  218. data/vendor/depot_tools/man/html/git-cl.html +1033 -0
  219. data/vendor/depot_tools/man/html/git-drover.html +1048 -0
  220. data/vendor/depot_tools/man/html/git-footers.html +878 -0
  221. data/vendor/depot_tools/man/html/git-freeze.html +859 -0
  222. data/vendor/depot_tools/man/html/git-hyper-blame.html +878 -0
  223. data/vendor/depot_tools/man/html/git-map-branches.html +904 -0
  224. data/vendor/depot_tools/man/html/git-map.html +887 -0
  225. data/vendor/depot_tools/man/html/git-mark-merge-base.html +826 -0
  226. data/vendor/depot_tools/man/html/git-nav-downstream.html +844 -0
  227. data/vendor/depot_tools/man/html/git-nav-upstream.html +853 -0
  228. data/vendor/depot_tools/man/html/git-new-branch.html +932 -0
  229. data/vendor/depot_tools/man/html/git-rebase-update.html +961 -0
  230. data/vendor/depot_tools/man/html/git-rename-branch.html +794 -0
  231. data/vendor/depot_tools/man/html/git-reparent-branch.html +847 -0
  232. data/vendor/depot_tools/man/html/git-retry.html +858 -0
  233. data/vendor/depot_tools/man/html/git-squash-branch.html +881 -0
  234. data/vendor/depot_tools/man/html/git-thaw.html +794 -0
  235. data/vendor/depot_tools/man/html/git-upstream-diff.html +923 -0
  236. data/vendor/depot_tools/man/man1/git-cl.1 +198 -0
  237. data/vendor/depot_tools/man/man1/git-drover.1 +330 -0
  238. data/vendor/depot_tools/man/man1/git-footers.1 +144 -0
  239. data/vendor/depot_tools/man/man1/git-freeze.1 +113 -0
  240. data/vendor/depot_tools/man/man1/git-hyper-blame.1 +128 -0
  241. data/vendor/depot_tools/man/man1/git-map-branches.1 +210 -0
  242. data/vendor/depot_tools/man/man1/git-map.1 +179 -0
  243. data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +69 -0
  244. data/vendor/depot_tools/man/man1/git-nav-downstream.1 +112 -0
  245. data/vendor/depot_tools/man/man1/git-nav-upstream.1 +122 -0
  246. data/vendor/depot_tools/man/man1/git-new-branch.1 +176 -0
  247. data/vendor/depot_tools/man/man1/git-rebase-update.1 +177 -0
  248. data/vendor/depot_tools/man/man1/git-rename-branch.1 +53 -0
  249. data/vendor/depot_tools/man/man1/git-reparent-branch.1 +93 -0
  250. data/vendor/depot_tools/man/man1/git-retry.1 +108 -0
  251. data/vendor/depot_tools/man/man1/git-squash-branch.1 +129 -0
  252. data/vendor/depot_tools/man/man1/git-thaw.1 +54 -0
  253. data/vendor/depot_tools/man/man1/git-upstream-diff.1 +153 -0
  254. data/vendor/depot_tools/man/man7/depot_tools.7 +139 -0
  255. data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +1061 -0
  256. data/vendor/depot_tools/man/push_to_gs.sh +4 -0
  257. data/vendor/depot_tools/man/src/.gitignore +5 -0
  258. data/vendor/depot_tools/man/src/_aliases.txt +5 -0
  259. data/vendor/depot_tools/man/src/_footer.txt +8 -0
  260. data/vendor/depot_tools/man/src/_git-cl_desc.helper.txt +1 -0
  261. data/vendor/depot_tools/man/src/_git-drover_desc.helper.txt +2 -0
  262. data/vendor/depot_tools/man/src/_git-footers_desc.helper.txt +1 -0
  263. data/vendor/depot_tools/man/src/_git-freeze_desc.helper.txt +1 -0
  264. data/vendor/depot_tools/man/src/_git-hyper-blame_desc.helper.txt +1 -0
  265. data/vendor/depot_tools/man/src/_git-map-branches_desc.helper.txt +4 -0
  266. data/vendor/depot_tools/man/src/_git-map_desc.helper.txt +3 -0
  267. data/vendor/depot_tools/man/src/_git-mark-merge-base_desc.helper.txt +1 -0
  268. data/vendor/depot_tools/man/src/_git-nav-downstream_desc.helper.txt +1 -0
  269. data/vendor/depot_tools/man/src/_git-nav-upstream_desc.helper.txt +1 -0
  270. data/vendor/depot_tools/man/src/_git-new-branch_desc.helper.txt +1 -0
  271. data/vendor/depot_tools/man/src/_git-rebase-update_desc.helper.txt +1 -0
  272. data/vendor/depot_tools/man/src/_git-rename-branch_desc.helper.txt +1 -0
  273. data/vendor/depot_tools/man/src/_git-reparent-branch_desc.helper.txt +1 -0
  274. data/vendor/depot_tools/man/src/_git-retry_desc.helper.txt +2 -0
  275. data/vendor/depot_tools/man/src/_git-squash-branch_desc.helper.txt +1 -0
  276. data/vendor/depot_tools/man/src/_git-thaw_desc.helper.txt +2 -0
  277. data/vendor/depot_tools/man/src/_git-upstream-diff_desc.helper.txt +1 -0
  278. data/vendor/depot_tools/man/src/_helper_prefix.txt +1 -0
  279. data/vendor/depot_tools/man/src/asciidoc-override.css +7 -0
  280. data/vendor/depot_tools/man/src/common_demo_functions.sh +84 -0
  281. data/vendor/depot_tools/man/src/demo_repo.sh +43 -0
  282. data/vendor/depot_tools/man/src/depot_tools.txt +28 -0
  283. data/vendor/depot_tools/man/src/depot_tools_tutorial.demo.walkthrough.sh +155 -0
  284. data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +432 -0
  285. data/vendor/depot_tools/man/src/filter_demo_output.py +141 -0
  286. data/vendor/depot_tools/man/src/git-cl.txt +119 -0
  287. data/vendor/depot_tools/man/src/git-drover.demo.1.sh +22 -0
  288. data/vendor/depot_tools/man/src/git-drover.demo.2.sh +23 -0
  289. data/vendor/depot_tools/man/src/git-drover.demo.3.sh +27 -0
  290. data/vendor/depot_tools/man/src/git-drover.demo.4.sh +39 -0
  291. data/vendor/depot_tools/man/src/git-drover.demo.common.sh +19 -0
  292. data/vendor/depot_tools/man/src/git-drover.txt +102 -0
  293. data/vendor/depot_tools/man/src/git-footers.demo.1.sh +17 -0
  294. data/vendor/depot_tools/man/src/git-footers.txt +71 -0
  295. data/vendor/depot_tools/man/src/git-freeze.demo.1.sh +23 -0
  296. data/vendor/depot_tools/man/src/git-freeze.txt +54 -0
  297. data/vendor/depot_tools/man/src/git-hyper-blame.demo.1.sh +3 -0
  298. data/vendor/depot_tools/man/src/git-hyper-blame.demo.2.sh +4 -0
  299. data/vendor/depot_tools/man/src/git-hyper-blame.demo.common.sh +57 -0
  300. data/vendor/depot_tools/man/src/git-hyper-blame.txt +85 -0
  301. data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +8 -0
  302. data/vendor/depot_tools/man/src/git-map-branches.txt +64 -0
  303. data/vendor/depot_tools/man/src/git-map.demo.1.sh +3 -0
  304. data/vendor/depot_tools/man/src/git-map.txt +67 -0
  305. data/vendor/depot_tools/man/src/git-mark-merge-base.txt +46 -0
  306. data/vendor/depot_tools/man/src/git-nav-downstream.demo.1.sh +12 -0
  307. data/vendor/depot_tools/man/src/git-nav-downstream.txt +40 -0
  308. data/vendor/depot_tools/man/src/git-nav-upstream.demo.1.sh +12 -0
  309. data/vendor/depot_tools/man/src/git-nav-upstream.txt +39 -0
  310. data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +17 -0
  311. data/vendor/depot_tools/man/src/git-new-branch.txt +82 -0
  312. data/vendor/depot_tools/man/src/git-rebase-update.txt +141 -0
  313. data/vendor/depot_tools/man/src/git-rename-branch.txt +28 -0
  314. data/vendor/depot_tools/man/src/git-reparent-branch.txt +61 -0
  315. data/vendor/depot_tools/man/src/git-retry.txt +67 -0
  316. data/vendor/depot_tools/man/src/git-squash-branch.demo.1.sh +12 -0
  317. data/vendor/depot_tools/man/src/git-squash-branch.txt +59 -0
  318. data/vendor/depot_tools/man/src/git-thaw.txt +29 -0
  319. data/vendor/depot_tools/man/src/git-upstream-diff.txt +107 -0
  320. data/vendor/depot_tools/man/src/make_docs.sh +260 -0
  321. data/vendor/depot_tools/man/src/prep_demo_repo.sh +103 -0
  322. data/vendor/depot_tools/metrics.README.md +101 -0
  323. data/vendor/depot_tools/metrics.py +297 -0
  324. data/vendor/depot_tools/metrics_utils.py +293 -0
  325. data/vendor/depot_tools/my_activity.py +971 -0
  326. data/vendor/depot_tools/ninja +44 -0
  327. data/vendor/depot_tools/ninja-linux32 +0 -0
  328. data/vendor/depot_tools/ninja-linux64 +0 -0
  329. data/vendor/depot_tools/ninja-mac +0 -0
  330. data/vendor/depot_tools/ninja.exe +0 -0
  331. data/vendor/depot_tools/ninjalog.README.md +64 -0
  332. data/vendor/depot_tools/ninjalog_uploader.py +233 -0
  333. data/vendor/depot_tools/ninjalog_uploader_wrapper.py +125 -0
  334. data/vendor/depot_tools/owners.py +641 -0
  335. data/vendor/depot_tools/owners_finder.py +385 -0
  336. data/vendor/depot_tools/post_build_ninja_summary.py +350 -0
  337. data/vendor/depot_tools/presubmit_canned_checks.py +1655 -0
  338. data/vendor/depot_tools/presubmit_support.py +1923 -0
  339. data/vendor/depot_tools/profile.xml +8 -0
  340. data/vendor/depot_tools/prpc +13 -0
  341. data/vendor/depot_tools/prpc.bat +8 -0
  342. data/vendor/depot_tools/pylint +9 -0
  343. data/vendor/depot_tools/pylint-1.5 +78 -0
  344. data/vendor/depot_tools/pylint-1.6 +78 -0
  345. data/vendor/depot_tools/pylint-1.7 +78 -0
  346. data/vendor/depot_tools/pylint-1.8 +78 -0
  347. data/vendor/depot_tools/pylint-1.9 +78 -0
  348. data/vendor/depot_tools/pylint.bat +12 -0
  349. data/vendor/depot_tools/pylint_main.py +45 -0
  350. data/vendor/depot_tools/pylintrc +349 -0
  351. data/vendor/depot_tools/python-bin/python3 +7 -0
  352. data/vendor/depot_tools/python_runner.sh +60 -0
  353. data/vendor/depot_tools/rdb +12 -0
  354. data/vendor/depot_tools/rdb.bat +7 -0
  355. data/vendor/depot_tools/recipes/OWNERS +4 -0
  356. data/vendor/depot_tools/recipes/README.recipes.md +1079 -0
  357. data/vendor/depot_tools/recipes/recipe_modules/OWNERS +1 -0
  358. data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
  359. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +38 -0
  360. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +516 -0
  361. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +117 -0
  362. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +117 -0
  363. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +118 -0
  364. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +211 -0
  365. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +194 -0
  366. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +211 -0
  367. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +211 -0
  368. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/input_commit_with_id_without_repo.json +210 -0
  369. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/multiple_patch_refs.json +214 -0
  370. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +265 -0
  371. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_HEAD.json +65 -0
  372. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_branch_head.json +65 -0
  373. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_specific_commit.json +65 -0
  374. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_master.json +65 -0
  375. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/refs.json +212 -0
  376. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +210 -0
  377. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/resolve_chromium_fixed_version.json +117 -0
  378. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +95 -0
  379. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +209 -0
  380. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +193 -0
  381. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +265 -0
  382. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +261 -0
  383. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +261 -0
  384. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +265 -0
  385. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +265 -0
  386. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +265 -0
  387. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +265 -0
  388. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +8 -0
  389. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +211 -0
  390. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +308 -0
  391. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/__init__.py +0 -0
  392. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +1258 -0
  393. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +93 -0
  394. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py +42 -0
  395. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +35 -0
  396. data/vendor/depot_tools/recipes/recipe_modules/cipd/__init__.py +9 -0
  397. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +455 -0
  398. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +403 -0
  399. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +403 -0
  400. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +82 -0
  401. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +411 -0
  402. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +403 -0
  403. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +315 -0
  404. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +313 -0
  405. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +313 -0
  406. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +403 -0
  407. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.py +187 -0
  408. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +5 -0
  409. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +5 -0
  410. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +12 -0
  411. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +12 -0
  412. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +12 -0
  413. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +12 -0
  414. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +12 -0
  415. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +12 -0
  416. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +12 -0
  417. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +12 -0
  418. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.py +59 -0
  419. data/vendor/depot_tools/recipes/recipe_modules/cipd/test_api.py +93 -0
  420. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/__init__.py +9 -0
  421. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +75 -0
  422. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +83 -0
  423. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +83 -0
  424. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +83 -0
  425. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +55 -0
  426. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +13 -0
  427. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +428 -0
  428. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +462 -0
  429. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +238 -0
  430. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +240 -0
  431. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +238 -0
  432. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +95 -0
  433. data/vendor/depot_tools/recipes/recipe_modules/gclient/resources/diff_deps.py +16 -0
  434. data/vendor/depot_tools/recipes/recipe_modules/gclient/test_api.py +36 -0
  435. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/basic.json +55 -0
  436. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/dont have revision yet.json +84 -0
  437. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/no change, exception.json +83 -0
  438. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/windows.json +55 -0
  439. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.py +88 -0
  440. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +92 -0
  441. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/sync_failure.py +24 -0
  442. data/vendor/depot_tools/recipes/recipe_modules/gerrit/__init__.py +8 -0
  443. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +178 -0
  444. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +284 -0
  445. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +73 -0
  446. data/vendor/depot_tools/recipes/recipe_modules/gerrit/test_api.py +53 -0
  447. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +11 -0
  448. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +405 -0
  449. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +217 -0
  450. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +217 -0
  451. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +219 -0
  452. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +216 -0
  453. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +217 -0
  454. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +218 -0
  455. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +218 -0
  456. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +164 -0
  457. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +220 -0
  458. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +239 -0
  459. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +290 -0
  460. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +220 -0
  461. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +222 -0
  462. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +111 -0
  463. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +218 -0
  464. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +265 -0
  465. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +217 -0
  466. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +221 -0
  467. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +219 -0
  468. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +218 -0
  469. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +170 -0
  470. data/vendor/depot_tools/recipes/recipe_modules/git/resources/git_setup.py +52 -0
  471. data/vendor/depot_tools/recipes/recipe_modules/git/test_api.py +18 -0
  472. data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +5 -0
  473. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +50 -0
  474. data/vendor/depot_tools/recipes/recipe_modules/git_cl/config.py +22 -0
  475. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +105 -0
  476. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.py +47 -0
  477. data/vendor/depot_tools/recipes/recipe_modules/gitiles/OWNERS +2 -0
  478. data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +12 -0
  479. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +257 -0
  480. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +596 -0
  481. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +93 -0
  482. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +251 -0
  483. data/vendor/depot_tools/recipes/recipe_modules/gitiles/test_api.py +95 -0
  484. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +5 -0
  485. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
  486. data/vendor/depot_tools/recipes/recipe_modules/gsutil/__init__.py +4 -0
  487. data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +222 -0
  488. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +247 -0
  489. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.py +92 -0
  490. data/vendor/depot_tools/recipes/recipe_modules/gsutil/resources/gsutil_smart_retry.py +69 -0
  491. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +36 -0
  492. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +140 -0
  493. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/ancient_version.json +83 -0
  494. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/automatic_version.json +83 -0
  495. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/explicit_version.json +83 -0
  496. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +21 -0
  497. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +83 -0
  498. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +21 -0
  499. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +42 -0
  500. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +27 -0
  501. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +251 -0
  502. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +27 -0
  503. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.py +19 -0
  504. data/vendor/depot_tools/recipes/recipe_modules/presubmit/properties.proto +14 -0
  505. data/vendor/depot_tools/recipes/recipe_modules/presubmit/test_api.py +19 -0
  506. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/execute.py +247 -0
  507. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/prepare.py +49 -0
  508. data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +18 -0
  509. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +264 -0
  510. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +57 -0
  511. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +190 -0
  512. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +190 -0
  513. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +21 -0
  514. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +22 -0
  515. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +95 -0
  516. data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
  517. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py +29 -0
  518. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.expected/basic.json +5 -0
  519. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py +22 -0
  520. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py +32 -0
  521. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/__init__.py +25 -0
  522. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
  523. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +21 -0
  524. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +21 -0
  525. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +108 -0
  526. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +21 -0
  527. data/vendor/depot_tools/recipes/recipes.py +249 -0
  528. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +175 -0
  529. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.py +56 -0
  530. data/vendor/depot_tools/recipes/trigger_recipe_roller.txt +13 -0
  531. data/vendor/depot_tools/repo +1194 -0
  532. data/vendor/depot_tools/roll-dep +21 -0
  533. data/vendor/depot_tools/roll-dep.bat +21 -0
  534. data/vendor/depot_tools/roll_dep.py +282 -0
  535. data/vendor/depot_tools/scm.py +415 -0
  536. data/vendor/depot_tools/setup_color.py +130 -0
  537. data/vendor/depot_tools/split_cl.py +263 -0
  538. data/vendor/depot_tools/subcommand.py +261 -0
  539. data/vendor/depot_tools/subprocess2.py +258 -0
  540. data/vendor/depot_tools/third_party/__init__.py +5 -0
  541. data/vendor/depot_tools/third_party/colorama/LICENSE.txt +27 -0
  542. data/vendor/depot_tools/third_party/colorama/README.chromium +12 -0
  543. data/vendor/depot_tools/third_party/colorama/README.rst +346 -0
  544. data/vendor/depot_tools/third_party/colorama/__init__.py +6 -0
  545. data/vendor/depot_tools/third_party/colorama/ansi.py +102 -0
  546. data/vendor/depot_tools/third_party/colorama/ansitowin32.py +257 -0
  547. data/vendor/depot_tools/third_party/colorama/initialise.py +80 -0
  548. data/vendor/depot_tools/third_party/colorama/win32.py +152 -0
  549. data/vendor/depot_tools/third_party/colorama/winterm.py +169 -0
  550. data/vendor/depot_tools/third_party/coverage/AUTHORS.txt +43 -0
  551. data/vendor/depot_tools/third_party/coverage/PKG-INFO +41 -0
  552. data/vendor/depot_tools/third_party/coverage/README.chromium +13 -0
  553. data/vendor/depot_tools/third_party/coverage/__init__.py +120 -0
  554. data/vendor/depot_tools/third_party/coverage/__main__.py +4 -0
  555. data/vendor/depot_tools/third_party/coverage/annotate.py +101 -0
  556. data/vendor/depot_tools/third_party/coverage/backward.py +184 -0
  557. data/vendor/depot_tools/third_party/coverage/bytecode.py +75 -0
  558. data/vendor/depot_tools/third_party/coverage/cmdline.py +740 -0
  559. data/vendor/depot_tools/third_party/coverage/codeunit.py +145 -0
  560. data/vendor/depot_tools/third_party/coverage/collector.py +353 -0
  561. data/vendor/depot_tools/third_party/coverage/config.py +213 -0
  562. data/vendor/depot_tools/third_party/coverage/control.py +776 -0
  563. data/vendor/depot_tools/third_party/coverage/data.py +278 -0
  564. data/vendor/depot_tools/third_party/coverage/debug.py +54 -0
  565. data/vendor/depot_tools/third_party/coverage/execfile.py +171 -0
  566. data/vendor/depot_tools/third_party/coverage/files.py +309 -0
  567. data/vendor/depot_tools/third_party/coverage/fullcoverage/encodings.py +57 -0
  568. data/vendor/depot_tools/third_party/coverage/html.py +387 -0
  569. data/vendor/depot_tools/third_party/coverage/htmlfiles/coverage_html.js +376 -0
  570. data/vendor/depot_tools/third_party/coverage/htmlfiles/index.html +104 -0
  571. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery-1.4.3.min.js +166 -0
  572. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.hotkeys.js +99 -0
  573. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.isonscreen.js +53 -0
  574. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.min.js +166 -0
  575. data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.tablesorter.min.js +2 -0
  576. data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_closed.png +0 -0
  577. data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_open.png +0 -0
  578. data/vendor/depot_tools/third_party/coverage/htmlfiles/pyfile.html +90 -0
  579. data/vendor/depot_tools/third_party/coverage/htmlfiles/style.css +300 -0
  580. data/vendor/depot_tools/third_party/coverage/misc.py +163 -0
  581. data/vendor/depot_tools/third_party/coverage/parser.py +666 -0
  582. data/vendor/depot_tools/third_party/coverage/phystokens.py +208 -0
  583. data/vendor/depot_tools/third_party/coverage/report.py +92 -0
  584. data/vendor/depot_tools/third_party/coverage/results.py +286 -0
  585. data/vendor/depot_tools/third_party/coverage/summary.py +86 -0
  586. data/vendor/depot_tools/third_party/coverage/templite.py +166 -0
  587. data/vendor/depot_tools/third_party/coverage/version.py +9 -0
  588. data/vendor/depot_tools/third_party/coverage/xmlreport.py +155 -0
  589. data/vendor/depot_tools/third_party/httplib2/LICENSE +1339 -0
  590. data/vendor/depot_tools/third_party/httplib2/README.chromium +15 -0
  591. data/vendor/depot_tools/third_party/httplib2/__init__.py +1780 -0
  592. data/vendor/depot_tools/third_party/httplib2/cacerts.txt +2196 -0
  593. data/vendor/depot_tools/third_party/httplib2/iri2uri.py +110 -0
  594. data/vendor/depot_tools/third_party/httplib2/socks.py +448 -0
  595. data/vendor/depot_tools/third_party/repo/COPYING +202 -0
  596. data/vendor/depot_tools/third_party/repo/README.chromium +4 -0
  597. data/vendor/depot_tools/third_party/repo/__init__.py +0 -0
  598. data/vendor/depot_tools/third_party/repo/progress.py +117 -0
  599. data/vendor/depot_tools/third_party/retry_decorator/LICENSE.google +30 -0
  600. data/vendor/depot_tools/third_party/retry_decorator/__init__.py +0 -0
  601. data/vendor/depot_tools/third_party/retry_decorator/decorators.py +45 -0
  602. data/vendor/depot_tools/third_party/schema/.editorconfig +15 -0
  603. data/vendor/depot_tools/third_party/schema/.gitignore +174 -0
  604. data/vendor/depot_tools/third_party/schema/.travis.yml +37 -0
  605. data/vendor/depot_tools/third_party/schema/LICENSE-MIT +19 -0
  606. data/vendor/depot_tools/third_party/schema/MANIFEST.in +1 -0
  607. data/vendor/depot_tools/third_party/schema/README.chromium +12 -0
  608. data/vendor/depot_tools/third_party/schema/README.rst +382 -0
  609. data/vendor/depot_tools/third_party/schema/__init__.py +1 -0
  610. data/vendor/depot_tools/third_party/schema/schema.py +338 -0
  611. data/vendor/depot_tools/third_party/schema/setup.cfg +5 -0
  612. data/vendor/depot_tools/third_party/schema/setup.py +30 -0
  613. data/vendor/depot_tools/third_party/schema/test_schema.py +556 -0
  614. data/vendor/depot_tools/third_party/schema/tox.ini +33 -0
  615. data/vendor/depot_tools/third_party/six/LICENSE.txt +18 -0
  616. data/vendor/depot_tools/third_party/six/README.chromium +10 -0
  617. data/vendor/depot_tools/third_party/six/__init__.py +762 -0
  618. data/vendor/depot_tools/update_depot_tools +138 -0
  619. data/vendor/depot_tools/update_depot_tools.bat +65 -0
  620. data/vendor/depot_tools/update_depot_tools_toggle.py +38 -0
  621. data/vendor/depot_tools/upload_metrics.py +26 -0
  622. data/vendor/depot_tools/upload_to_google_storage.py +306 -0
  623. data/vendor/depot_tools/vpython +42 -0
  624. data/vendor/depot_tools/vpython.bat +7 -0
  625. data/vendor/depot_tools/vpython3 +55 -0
  626. data/vendor/depot_tools/vpython3.bat +12 -0
  627. data/vendor/depot_tools/watchlists.py +141 -0
  628. data/vendor/depot_tools/weekly +54 -0
  629. data/vendor/depot_tools/win32imports.py +61 -0
  630. data/vendor/depot_tools/win_toolchain/OWNERS +2 -0
  631. data/vendor/depot_tools/win_toolchain/README.md +74 -0
  632. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +599 -0
  633. data/vendor/depot_tools/win_toolchain/package_from_installed.py +524 -0
  634. data/vendor/depot_tools/wtf +81 -0
  635. data/vendor/depot_tools/yapf +21 -0
  636. data/vendor/depot_tools/yapf.bat +12 -0
  637. data/vendor/depot_tools/zsh-goodies/README +6 -0
  638. data/vendor/depot_tools/zsh-goodies/_gclient +14 -0
  639. metadata +729 -0
@@ -0,0 +1,83 @@
1
+ [
2
+ {
3
+ "cmd": [
4
+ "ls",
5
+ "RECIPE_REPO[depot_tools]"
6
+ ],
7
+ "name": "root"
8
+ },
9
+ {
10
+ "cmd": [
11
+ "ls",
12
+ "RECIPE_REPO[depot_tools]/download_from_google_storage.py"
13
+ ],
14
+ "name": "download_from_google_storage"
15
+ },
16
+ {
17
+ "cmd": [
18
+ "ls",
19
+ "RECIPE_REPO[depot_tools]/upload_to_google_storage.py"
20
+ ],
21
+ "name": "upload_to_google_storage"
22
+ },
23
+ {
24
+ "cmd": [
25
+ "ls",
26
+ "RECIPE_REPO[depot_tools]/cros"
27
+ ],
28
+ "name": "cros"
29
+ },
30
+ {
31
+ "cmd": [
32
+ "ls",
33
+ "RECIPE_REPO[depot_tools]/gn.py"
34
+ ],
35
+ "name": "gn_py_path"
36
+ },
37
+ {
38
+ "cmd": [
39
+ "ls",
40
+ "RECIPE_REPO[depot_tools]/gsutil.py"
41
+ ],
42
+ "name": "gsutil_py_path"
43
+ },
44
+ {
45
+ "cmd": [
46
+ "ls",
47
+ "RECIPE_REPO[depot_tools]/ninja"
48
+ ],
49
+ "name": "ninja_path"
50
+ },
51
+ {
52
+ "cmd": [
53
+ "ls",
54
+ "RECIPE_REPO[depot_tools]/autoninja"
55
+ ],
56
+ "name": "autoninja_path"
57
+ },
58
+ {
59
+ "cmd": [
60
+ "ls",
61
+ "RECIPE_REPO[depot_tools]/presubmit_support.py"
62
+ ],
63
+ "name": "presubmit_support_py_path"
64
+ },
65
+ {
66
+ "cmd": [
67
+ "echo",
68
+ "$PATH"
69
+ ],
70
+ "env_suffixes": {
71
+ "DEPOT_TOOLS_UPDATE": [
72
+ "0"
73
+ ],
74
+ "PATH": [
75
+ "RECIPE_REPO[depot_tools]"
76
+ ]
77
+ },
78
+ "name": "on_path"
79
+ },
80
+ {
81
+ "name": "$result"
82
+ }
83
+ ]
@@ -0,0 +1,83 @@
1
+ [
2
+ {
3
+ "cmd": [
4
+ "ls",
5
+ "RECIPE_REPO[depot_tools]"
6
+ ],
7
+ "name": "root"
8
+ },
9
+ {
10
+ "cmd": [
11
+ "ls",
12
+ "RECIPE_REPO[depot_tools]\\download_from_google_storage.py"
13
+ ],
14
+ "name": "download_from_google_storage"
15
+ },
16
+ {
17
+ "cmd": [
18
+ "ls",
19
+ "RECIPE_REPO[depot_tools]\\upload_to_google_storage.py"
20
+ ],
21
+ "name": "upload_to_google_storage"
22
+ },
23
+ {
24
+ "cmd": [
25
+ "ls",
26
+ "RECIPE_REPO[depot_tools]\\cros"
27
+ ],
28
+ "name": "cros"
29
+ },
30
+ {
31
+ "cmd": [
32
+ "ls",
33
+ "RECIPE_REPO[depot_tools]\\gn.py"
34
+ ],
35
+ "name": "gn_py_path"
36
+ },
37
+ {
38
+ "cmd": [
39
+ "ls",
40
+ "RECIPE_REPO[depot_tools]\\gsutil.py"
41
+ ],
42
+ "name": "gsutil_py_path"
43
+ },
44
+ {
45
+ "cmd": [
46
+ "ls",
47
+ "RECIPE_REPO[depot_tools]\\ninja.exe"
48
+ ],
49
+ "name": "ninja_path"
50
+ },
51
+ {
52
+ "cmd": [
53
+ "ls",
54
+ "RECIPE_REPO[depot_tools]\\autoninja.bat"
55
+ ],
56
+ "name": "autoninja_path"
57
+ },
58
+ {
59
+ "cmd": [
60
+ "ls",
61
+ "RECIPE_REPO[depot_tools]\\presubmit_support.py"
62
+ ],
63
+ "name": "presubmit_support_py_path"
64
+ },
65
+ {
66
+ "cmd": [
67
+ "echo",
68
+ "$PATH"
69
+ ],
70
+ "env_suffixes": {
71
+ "DEPOT_TOOLS_UPDATE": [
72
+ "0"
73
+ ],
74
+ "PATH": [
75
+ "RECIPE_REPO[depot_tools]"
76
+ ]
77
+ },
78
+ "name": "on_path"
79
+ },
80
+ {
81
+ "name": "$result"
82
+ }
83
+ ]
@@ -0,0 +1,55 @@
1
+ # Copyright 2016 The Chromium Authors. All rights reserved.
2
+ # Use of this source code is governed by a BSD-style license that can be
3
+ # found in the LICENSE file.
4
+
5
+ DEPS = [
6
+ 'depot_tools',
7
+ 'recipe_engine/path',
8
+ 'recipe_engine/platform',
9
+ 'recipe_engine/runtime',
10
+ 'recipe_engine/step',
11
+ ]
12
+
13
+
14
+ def RunSteps(api):
15
+ api.step('root', ['ls', api.depot_tools.root])
16
+
17
+ api.step(
18
+ 'download_from_google_storage',
19
+ ['ls', api.depot_tools.download_from_google_storage_path])
20
+
21
+ api.step(
22
+ 'upload_to_google_storage',
23
+ ['ls', api.depot_tools.upload_to_google_storage_path])
24
+
25
+ api.step('cros', ['ls', api.depot_tools.cros_path])
26
+
27
+ api.step(
28
+ 'gn_py_path', ['ls', api.depot_tools.gn_py_path])
29
+
30
+ api.step(
31
+ 'gsutil_py_path', ['ls', api.depot_tools.gsutil_py_path])
32
+
33
+ api.step(
34
+ 'ninja_path', ['ls', api.depot_tools.ninja_path])
35
+
36
+ api.step(
37
+ 'autoninja_path', ['ls', api.depot_tools.autoninja_path])
38
+
39
+ api.step(
40
+ 'presubmit_support_py_path',
41
+ ['ls', api.depot_tools.presubmit_support_py_path])
42
+
43
+ with api.depot_tools.on_path():
44
+ api.step('on_path', ['echo', '$PATH'])
45
+
46
+
47
+ def GenTests(api):
48
+ yield api.test('basic')
49
+
50
+ yield (
51
+ api.test('basic_luci')
52
+ + api.runtime(is_experimental=False, is_luci=True)
53
+ )
54
+
55
+ yield api.test('win') + api.platform('win', 32)
@@ -0,0 +1,13 @@
1
+ DEPS = [
2
+ 'git',
3
+ 'gitiles',
4
+ 'recipe_engine/context',
5
+ 'recipe_engine/json',
6
+ 'recipe_engine/path',
7
+ 'recipe_engine/platform',
8
+ 'recipe_engine/properties',
9
+ 'recipe_engine/python',
10
+ 'recipe_engine/raw_io',
11
+ 'recipe_engine/step',
12
+ 'tryserver',
13
+ ]
@@ -0,0 +1,428 @@
1
+ # Copyright 2013 The Chromium Authors. All rights reserved.
2
+ # Use of this source code is governed by a BSD-style license that can be
3
+ # found in the LICENSE file.
4
+
5
+ import re
6
+ from recipe_engine import recipe_api
7
+
8
+ class DepsDiffException(Exception):
9
+ pass
10
+
11
+ class RevisionResolver(object):
12
+ """Resolves the revision based on build properties."""
13
+
14
+ def resolve(self, properties): # pragma: no cover
15
+ raise NotImplementedError()
16
+
17
+
18
+ class RevisionFallbackChain(RevisionResolver):
19
+ """Specify that a given project's sync revision follows the fallback chain."""
20
+ def __init__(self, default=None):
21
+ self._default = default
22
+
23
+ def resolve(self, properties):
24
+ """Resolve the revision via the revision fallback chain.
25
+
26
+ If the given revision was set using the revision_fallback_chain() function,
27
+ this function will follow the chain, looking at relevant build properties
28
+ until it finds one set or reaches the end of the chain and returns the
29
+ default. If the given revision was not set using revision_fallback_chain(),
30
+ this function just returns it as-is.
31
+ """
32
+ return (properties.get('parent_got_revision') or
33
+ properties.get('orig_revision') or
34
+ properties.get('revision') or
35
+ self._default)
36
+
37
+
38
+ def jsonish_to_python(spec, is_top=False):
39
+ """Turn a json spec into a python parsable object.
40
+
41
+ This exists because Gclient specs, while resembling json, is actually
42
+ ingested using a python "eval()". Therefore a bit of plumming is required
43
+ to turn our newly constructed Gclient spec into a gclient-readable spec.
44
+ """
45
+ ret = ''
46
+ if is_top: # We're the 'top' level, so treat this dict as a suite.
47
+ ret = '\n'.join(
48
+ '%s = %s' % (k, jsonish_to_python(spec[k])) for k in sorted(spec)
49
+ )
50
+ else:
51
+ if isinstance(spec, dict):
52
+ ret += '{'
53
+ ret += ', '.join(
54
+ "%s: %s" % (repr(str(k)), jsonish_to_python(spec[k]))
55
+ for k in sorted(spec)
56
+ )
57
+ ret += '}'
58
+ elif isinstance(spec, list):
59
+ ret += '['
60
+ ret += ', '.join(jsonish_to_python(x) for x in spec)
61
+ ret += ']'
62
+ elif isinstance(spec, basestring):
63
+ ret = repr(str(spec))
64
+ else:
65
+ ret = repr(spec)
66
+ return ret
67
+
68
+ class GclientApi(recipe_api.RecipeApi):
69
+ # Singleton object to indicate to checkout() that we should run a revert if
70
+ # we detect that we're on the tryserver.
71
+ RevertOnTryserver = object()
72
+
73
+ def __init__(self, **kwargs):
74
+ super(GclientApi, self).__init__(**kwargs)
75
+ self.USE_MIRROR = None
76
+ self._spec_alias = None
77
+
78
+ def __call__(self, name, cmd, infra_step=True, **kwargs):
79
+ """Wrapper for easy calling of gclient steps."""
80
+ assert isinstance(cmd, (list, tuple))
81
+ prefix = 'gclient '
82
+ if self.spec_alias:
83
+ prefix = ('[spec: %s] ' % self.spec_alias) + prefix
84
+
85
+ with self.m.context(
86
+ env_suffixes={'PATH': [self.repo_resource()]}):
87
+ return self.m.python(prefix + name,
88
+ self.repo_resource('gclient.py'),
89
+ cmd,
90
+ infra_step=infra_step,
91
+ **kwargs)
92
+
93
+ @property
94
+ def use_mirror(self):
95
+ """Indicates if gclient will use mirrors in its configuration."""
96
+ if self.USE_MIRROR is None:
97
+ self.USE_MIRROR = self.m.properties.get('use_mirror', True)
98
+ return self.USE_MIRROR
99
+
100
+ @use_mirror.setter
101
+ def use_mirror(self, val): # pragma: no cover
102
+ self.USE_MIRROR = val
103
+
104
+ @property
105
+ def spec_alias(self):
106
+ """Optional name for the current spec for step naming."""
107
+ return self._spec_alias
108
+
109
+ @spec_alias.setter
110
+ def spec_alias(self, name):
111
+ self._spec_alias = name
112
+
113
+ @spec_alias.deleter
114
+ def spec_alias(self):
115
+ self._spec_alias = None
116
+
117
+ def get_config_defaults(self):
118
+ return {
119
+ 'USE_MIRROR': self.use_mirror,
120
+ 'CACHE_DIR': self.m.path['cache'].join('git'),
121
+ }
122
+
123
+ @staticmethod
124
+ def config_to_pythonish(cfg):
125
+ return jsonish_to_python(cfg.as_jsonish(), True)
126
+
127
+ # TODO(machenbach): Remove this method when the old mapping is deprecated.
128
+ @staticmethod
129
+ def got_revision_reverse_mapping(cfg):
130
+ """Returns the merged got_revision_reverse_mapping.
131
+
132
+ Returns (dict): A mapping from property name -> project name. It merges the
133
+ values of the deprecated got_revision_mapping and the new
134
+ got_revision_reverse_mapping.
135
+ """
136
+ rev_map = cfg.got_revision_mapping.as_jsonish()
137
+ reverse_rev_map = cfg.got_revision_reverse_mapping.as_jsonish()
138
+ combined_length = len(rev_map) + len(reverse_rev_map)
139
+ reverse_rev_map.update({v: k for k, v in rev_map.items()})
140
+
141
+ # Make sure we never have duplicate values in the old map.
142
+ assert combined_length == len(reverse_rev_map)
143
+ return reverse_rev_map
144
+
145
+ def resolve_revision(self, revision):
146
+ if hasattr(revision, 'resolve'):
147
+ return revision.resolve(self.m.properties)
148
+ return revision
149
+
150
+ def sync(self, cfg, extra_sync_flags=None, **kwargs):
151
+ revisions = []
152
+ self.set_patch_repo_revision(gclient_config=cfg)
153
+ for i, s in enumerate(cfg.solutions):
154
+ if i == 0 and s.revision is None:
155
+ s.revision = RevisionFallbackChain()
156
+
157
+ if s.revision is not None and s.revision != '':
158
+ fixed_revision = self.resolve_revision(s.revision)
159
+ if fixed_revision:
160
+ revisions.extend(['--revision', '%s@%s' % (s.name, fixed_revision)])
161
+
162
+ for name, revision in sorted(cfg.revisions.items()):
163
+ fixed_revision = self.resolve_revision(revision)
164
+ if fixed_revision:
165
+ revisions.extend(['--revision', '%s@%s' % (name, fixed_revision)])
166
+
167
+ test_data_paths = set(self.got_revision_reverse_mapping(cfg).values() +
168
+ [s.name for s in cfg.solutions])
169
+ step_test_data = lambda: (
170
+ self.test_api.output_json(test_data_paths))
171
+ try:
172
+ # clean() isn't used because the gclient sync flags passed in checkout()
173
+ # do much the same thing, and they're more correct than doing a separate
174
+ # 'gclient revert' because it makes sure the other args are correct when
175
+ # a repo was deleted and needs to be re-cloned (notably
176
+ # --with_branch_heads), whereas 'revert' uses default args for clone
177
+ # operations.
178
+ #
179
+ # TODO(mmoss): To be like current official builders, this step could
180
+ # just delete the whole <slave_name>/build/ directory and start each
181
+ # build from scratch. That might be the least bad solution, at least
182
+ # until we have a reliable gclient method to produce a pristine working
183
+ # dir for git-based builds (e.g. maybe some combination of 'git
184
+ # reset/clean -fx' and removing the 'out' directory).
185
+ j = '-j2' if self.m.platform.is_win else '-j8'
186
+ args = ['sync', '--verbose', '--nohooks', j, '--reset', '--force',
187
+ '--upstream', '--no-nag-max', '--with_branch_heads',
188
+ '--with_tags']
189
+ args.extend(extra_sync_flags or [])
190
+ if cfg.delete_unversioned_trees:
191
+ args.append('--delete_unversioned_trees')
192
+ self('sync', args + revisions +
193
+ ['--output-json', self.m.json.output()],
194
+ step_test_data=step_test_data,
195
+ **kwargs)
196
+ finally:
197
+ result = self.m.step.active_result
198
+ if result.json.output is not None:
199
+ solutions = result.json.output['solutions']
200
+ for propname, path in sorted(
201
+ self.got_revision_reverse_mapping(cfg).items()):
202
+ # gclient json paths always end with a slash
203
+ info = solutions.get(path + '/') or solutions.get(path)
204
+ if info:
205
+ result.presentation.properties[propname] = info['revision']
206
+
207
+ return result
208
+
209
+ def inject_parent_got_revision(self, gclient_config=None, override=False):
210
+ """Match gclient config to build revisions obtained from build_properties.
211
+
212
+ Args:
213
+ gclient_config (gclient config object) - The config to manipulate. A value
214
+ of None manipulates the module's built-in config (self.c).
215
+ override (bool) - If True, will forcibly set revision and custom_vars
216
+ even if the config already contains values for them.
217
+ """
218
+ cfg = gclient_config or self.c
219
+
220
+ for prop, custom_var in cfg.parent_got_revision_mapping.items():
221
+ val = str(self.m.properties.get(prop, ''))
222
+ # TODO(infra): Fix coverage.
223
+ if val: # pragma: no cover
224
+ # Special case for 'src', inject into solutions[0]
225
+ if custom_var is None:
226
+ # This is not covered because we are deprecating this feature and
227
+ # it is no longer used by the public recipes.
228
+ if cfg.solutions[0].revision is None or override: # pragma: no cover
229
+ cfg.solutions[0].revision = val
230
+ else:
231
+ if custom_var not in cfg.solutions[0].custom_vars or override:
232
+ cfg.solutions[0].custom_vars[custom_var] = val
233
+
234
+ def checkout(self, gclient_config=None, revert=RevertOnTryserver,
235
+ inject_parent_got_revision=True, extra_sync_flags=None,
236
+ **kwargs):
237
+ """Return a step generator function for gclient checkouts."""
238
+ cfg = gclient_config or self.c
239
+ assert cfg.complete()
240
+
241
+ if revert is self.RevertOnTryserver:
242
+ revert = self.m.tryserver.is_tryserver
243
+
244
+ if inject_parent_got_revision:
245
+ self.inject_parent_got_revision(cfg, override=True)
246
+
247
+ self('setup', ['config', '--spec', self.config_to_pythonish(cfg)], **kwargs)
248
+
249
+ sync_step = None
250
+ try:
251
+ sync_step = self.sync(cfg, extra_sync_flags=extra_sync_flags, **kwargs)
252
+
253
+ cfg_cmds = [
254
+ ('user.name', 'local_bot'),
255
+ ('user.email', 'local_bot@example.com'),
256
+ ]
257
+ for var, val in cfg_cmds:
258
+ name = 'recurse (git config %s)' % var
259
+ self(name, ['recurse', 'git', 'config', var, val], **kwargs)
260
+ finally:
261
+ cwd = self.m.context.cwd or self.m.path['start_dir']
262
+ if 'checkout' not in self.m.path:
263
+ self.m.path['checkout'] = cwd.join(
264
+ *cfg.solutions[0].name.split(self.m.path.sep))
265
+
266
+ return sync_step
267
+
268
+ def runhooks(self, args=None, name='runhooks', **kwargs):
269
+ args = args or []
270
+ assert isinstance(args, (list, tuple))
271
+ with self.m.context(cwd=(self.m.context.cwd or self.m.path['checkout'])):
272
+ return self(name, ['runhooks'] + list(args), infra_step=False, **kwargs)
273
+
274
+ def break_locks(self):
275
+ """Remove all index.lock files. If a previous run of git crashed, bot was
276
+ reset, etc... we might end up with leftover index.lock files.
277
+ """
278
+ self.m.python.inline(
279
+ 'cleanup index.lock',
280
+ """
281
+ import os, sys
282
+
283
+ build_path = sys.argv[1]
284
+ if os.path.exists(build_path):
285
+ for (path, dir, files) in os.walk(build_path):
286
+ for cur_file in files:
287
+ if cur_file.endswith('index.lock'):
288
+ path_to_file = os.path.join(path, cur_file)
289
+ print('deleting %s' % path_to_file)
290
+ os.remove(path_to_file)
291
+ """,
292
+ args=[self.m.path['start_dir']],
293
+ infra_step=True,
294
+ )
295
+
296
+ def get_gerrit_patch_root(self, gclient_config=None):
297
+ """Returns local path to the repo where gerrit patch will be applied.
298
+
299
+ If there is no patch, returns None.
300
+ If patch is specified, but such repo is not found among configured solutions
301
+ or repo_path_map, returns name of the first solution. This is done solely
302
+ for backward compatibility with existing tests.
303
+ Please do not rely on this logic in new code.
304
+ Instead, properly map a repository to a local path using repo_path_map.
305
+ TODO(nodir): remove this. Update all recipe tests to specify a git_repo
306
+ matching the recipe.
307
+ """
308
+ cfg = gclient_config or self.c
309
+ repo_url = self.m.tryserver.gerrit_change_repo_url
310
+ if not repo_url:
311
+ return None
312
+ root = self.get_repo_path(repo_url, gclient_config=cfg)
313
+
314
+ # This is wrong, but that's what a ton of recipe tests expect today
315
+ root = root or cfg.solutions[0].name
316
+
317
+ return root
318
+
319
+ def _canonicalize_repo_url(self, repo_url):
320
+ """Attempts to make repo_url canonical. Supports Gitiles URL."""
321
+ return self.m.gitiles.canonicalize_repo_url(repo_url)
322
+
323
+ def get_repo_path(self, repo_url, gclient_config=None):
324
+ """Returns local path to the repo checkout given its url.
325
+
326
+ Consults cfg.repo_path_map and fallbacks to urls in configured solutions.
327
+
328
+ Returns None if not found.
329
+ """
330
+ rel_path = self._get_repo_path(repo_url, gclient_config=gclient_config)
331
+ if rel_path:
332
+ return self.m.path.join(*rel_path.split('/'))
333
+ return None
334
+
335
+ def _get_repo_path(self, repo_url, gclient_config=None):
336
+ repo_url = self._canonicalize_repo_url(repo_url)
337
+ cfg = gclient_config or self.c
338
+ rel_path, _ = cfg.repo_path_map.get(repo_url, ('', ''))
339
+ if rel_path:
340
+ return rel_path
341
+
342
+ # repo_path_map keys may be non-canonical.
343
+ for key, (rel_path, _) in cfg.repo_path_map.items():
344
+ if self._canonicalize_repo_url(key) == repo_url:
345
+ return rel_path
346
+
347
+ for s in cfg.solutions:
348
+ if self._canonicalize_repo_url(s.url) == repo_url:
349
+ return s.name
350
+
351
+ return None
352
+
353
+ def set_patch_repo_revision(self, gclient_config=None):
354
+ """Updates config revision corresponding to patched project.
355
+
356
+ Useful for bot_update only, as this is the only consumer of gclient's config
357
+ revision map. This doesn't overwrite the revision if it was already set.
358
+ """
359
+ cfg = gclient_config or self.c
360
+ repo_url = self.m.tryserver.gerrit_change_repo_url
361
+ path, revision = cfg.repo_path_map.get(repo_url, (None, None))
362
+ if path and revision and path not in cfg.revisions:
363
+ cfg.revisions[path] = revision
364
+
365
+ def diff_deps(self, cwd):
366
+ cwd = cwd.join(self.get_gerrit_patch_root())
367
+ with self.m.context(cwd=cwd):
368
+ step_result = self.m.git(
369
+ '-c',
370
+ 'core.quotePath=false',
371
+ 'checkout',
372
+ 'HEAD~',
373
+ '--',
374
+ 'DEPS',
375
+ name='checkout the previous DEPS',
376
+ stdout=self.m.raw_io.output()
377
+ )
378
+
379
+ try:
380
+ cfg = self.c
381
+
382
+ step_result = self(
383
+ 'recursively git diff all DEPS',
384
+ [
385
+ 'recurse',
386
+ self.resource('diff_deps.py'),
387
+ ],
388
+ stdout=self.m.raw_io.output_text(add_output_log=True),
389
+ )
390
+
391
+ paths = []
392
+ # gclient recurse prepends a number and a > to each line
393
+ # Let's take that out
394
+ for line in step_result.stdout.strip().splitlines():
395
+ if 'fatal: bad object' in line:
396
+ msg = "Couldn't checkout previous ref: %s" % line
397
+ step_result.presentation.logs['DepsDiffException'] = msg
398
+ raise self.DepsDiffException(msg)
399
+ elif re.match('\d+>', line):
400
+ paths.append(line[line.index('>') + 1:])
401
+
402
+
403
+ # Normalize paths
404
+ if self.m.platform.is_win:
405
+ # Looks like "analyze" wants POSIX slashes even on Windows (since git
406
+ # uses that format even on Windows).
407
+ paths = [path.replace('\\', '/') for path in paths]
408
+
409
+ if len(paths) > 0:
410
+ return paths
411
+ else:
412
+ msg = 'Unexpected result: autoroll diff found 0 files changed'
413
+ step_result.presentation.logs['DepsDiffException'] = msg
414
+ raise self.DepsDiffException(msg)
415
+
416
+ finally:
417
+ self.m.git(
418
+ '-c',
419
+ 'core.quotePath=false',
420
+ 'checkout',
421
+ 'HEAD',
422
+ '--',
423
+ 'DEPS',
424
+ name="checkout the original DEPS")
425
+
426
+ @property
427
+ def DepsDiffException(self):
428
+ return DepsDiffException